html - 带有 React 的 HTML 选择标记 - 从数据数组中创建渲染元素的选择列表,但不将第一个元素识别为值
问题描述
我创建了一个form
,它有select
html 标签。
我users
从我的 MongoDBarray
中获取信息,然后使用获取的信息进行更新,然后将每个信息呈现user elements
为select
标签下拉菜单的选项。
问题是所有数据都呈现为选择标签元素,但如果我选择第一个选项,它不会更新值而是保持为空。
这就是我select
的表单部分的样子:
<select ref={userInput}
required
className="form-control"
value = {username}
onChange={onChangeUsername}
>
{userItem}
</select>
这是在事件onChangeUsername
中触发的:onChange
const [ username, setUsername ] = useState('')
const onChangeUsername = (e) => setUsername(e.target.value)
这就是我渲染的方式userItem
:
const userItem = users.map(user => <UserOption key={user} user={user}/>)
这是UserOption
组件:
import React from 'react'
export default function UserOption({user}) {
return (
<option
key={user}
value={user}
>
{user}
</option>
)
}
它只是不识别菜单option element
中的第一个。select
我console.log
的post
请求,user
价值是""
如果我选择第一个选项。任何其他选项都会传递其价值。
想知道是什么原因?以及如何解决?
解决方案
推荐阅读
- c++ - 递归生成组合并存储到向量时的 bad_alloc()
- javascript - 向现有的 href 添加额外的文本
- maven - 用于 Ubuntu ARM64 的 Maven
- python - 在计算索引(哈希表实现)中使用 & vs MOD 运算符有什么区别?
- wpf - 是否可以在另一个 DataTemplate 周围有一个 DataTemplate?
- java - Eclipse m2e 不支持带有 JPMS 模块的 Maven 测试罐
- java - 当我对通过多对一关系连接的两个不同表使用相同的列名时,会创建额外的列
- postgresql - 管道正在 psql 中关闭
- php - 错误的php日期('t')
- powershell - 具有重复日期扩展名的文件的 Powershell 删除脚本,例如 .20181104、20181105 等