Javascript JS+;反应对象在<;的值属性中不守恒;选项>;标签
我有一个从在线数据库获取的下拉列表,并在列表中循环,Javascript JS+;反应对象在<;的值属性中不守恒;选项>;标签,javascript,html,reactjs,javascript-objects,Javascript,Html,Reactjs,Javascript Objects,我有一个从在线数据库获取的下拉列表,并在列表中循环,allStaff,如下所示: <select onChange={handleChange} className="select-css"> <option disabled defaultValue selected>Select Name</option> {allStaff.map(person=>(
allStaff
,如下所示:
<select onChange={handleChange} className="select-css">
<option disabled defaultValue selected>Select Name</option>
{allStaff.map(person=>(
<option value={person} key={person._id}>{person.name}</option>
))}
</select>
const handleChange = event => {
person = event.target.value;
}
因此,当我试图提取person的某些部分时,它似乎注册为一个字符串,等于[object object]
,我已经通过控制台日志检查了这个字符串,例如,我将尝试person.name
,并将得到一个错误。我遗漏了什么阻止我将person作为person对象来写?
作为参考,allStaff
正确输入如下:
[
{
"_id": "5ec63e97516541c07c2b26d3",
"name": "Bob the builder",
"clockedIn": false
},
{
"_id": "5ec68b41307f0b002436234a",
"name": "Bobby turner",
"clockedIn": false,
"time": "1333"
},
{
"_id": "5ec68b4d307f0b002436234b",
"name": "Bobby timer",
"clockedIn": true
}
]
选项的值应为字符串
<select onChange={handleChange} className="select-css">
<option disabled defaultValue selected>Select Name</option>
{allStaff.map(person=>(
<option value={person._id} key={person._id}>{person.name}</option>
))}
</select>
谢谢我最终基本上做到了这一点,但通过循环遍历所有员工以匹配特定员工。出于某种原因,人们认为只要在单击该对象时抓住它是可能的。有道理,泰!
const handleChange = event => {
personId = event.target.value;
person = allStaff.find(staff=>staff._id === personId)
}