【发布时间】:2020-11-21 17:12:43
【问题描述】:
问题
当我在下拉菜单中选择一个选项时,没有任何内容被选中,因为 role 的值是一个空字符串。使用的 UI 框架是 Semantic UI。
程序的工作原理
当用户在 Input 字段中输入时,函数 onChange 接受输入并将其保存到 values 中的空字符串中。但是,当输入类型是具有预定义输入的下拉菜单时,这是无效的。因此,当用户选择任何选项时,它会自动变为空字符串。
我无法理解如何解决这个问题。
代码
const [values, setValues] = useState({
username: '',
password: '',
confirmPassword: '',
email: '',
role: '' // This here seems to be the issue.
})
//OnChange Function (works for Input types)
const onChange = (e) => {
setValues({...values, [e.target.name]: e.target.value});
}
//FormInput for reference (working)
<Form.Input
label="Full Name"
placeholder="Full Name"
type="text"
name="username"
value={values.username}
onChange={onChange}
/>
//DropDown menu from SemanticUI
<Dropdown
placeholder="Select Role"
name="role"
fluid
selection
options={options}
value={values.role}
onChange={onChange}
/>
//Options for Dropdown Menu
const options =[
{
key: 'Client',
text: 'Client',
value: 'Client'
},
{
key: 'Employee',
text: 'Employee',
value: 'Employee'
}
]
更新:在下拉菜单中添加了"name"=role。但是还是不行。
选择下拉项前的截图
选择下拉项后的屏幕截图
更新:添加图片以供参考
【问题讨论】:
-
您在
e.target.name中看到了什么?你能console.log(e.target.name) -
可能是因为下拉项目没有名称?
标签: javascript jquery reactjs use-state