完整教程:50天50个小项目 (React19 + Tailwindcss V4) ✨| RandomChoicePicker(标签生成)
我们继续 50 个小项目挑战!——
RandomChoicePicker组件
仓库地址:https://gitee.com/hhm-hhm/50days50projects.git


构建一个简单的标签输入组件。用户可以在文本框中输入多个选项,并通过逗号分隔,组件会自动将其拆分成可视化的“标签”展示出来。
组件目标
- 接收用户输入的一段文本。
- 使用逗号
,分割输入内容。 - 动态渲染为一组“标签”(Tag)。
- 使用 TailwindCSS 快速构建美观现代的 UI 界面。
- 提供清晰的交互反馈。
RandomChoicePicker.tsx 组件实现
import React, { useState, useEffect } from 'react'
const RandomChoicePicker: React.FC = () => {
const [textareaText, setTextareaText] = useState('')
const [tagList, setTagList] = useState([])
// 每当 textareaText 变化时,自动分割标签
useEffect(() => {
const tags = textareaText
.split(',')
.map((item) => item.trim()) // 去除前后空格
.filter((item) => item !== '') // 过滤空字符串
setTagList(tags)
}, [textareaText])
return (
Enter all of the choices divided by a comma
(',').(输入所有选项,并用英文逗号,分隔)
Press enter when you're done
浙公网安备 33010602011771号