Javascript 反应:接收不同输入的相同值

Javascript 反应:接收不同输入的相同值,javascript,reactjs,Javascript,Reactjs,handlechange update功能可用于单个输入,例如name 但当添加第二个输入(如description)时,无论键入name或description输入,两个输入都会收到相同的值 如何让每个输入接收自己的值? const F=()=>{ 常量初始值列表=[ { id:“a”, 姓名:“约翰”, 说明:“1as23” }, { id:“b”, 姓名:“埃里克”, 说明:“12ce3” }, { id:“c”, 姓名:“乔纳森”, 描述:“12vt3” }, ]; const[lis

handlechange update
功能可用于单个输入,例如
name

但当添加第二个输入(如
description
)时,无论键入
name
description
输入,两个输入都会收到相同的值

如何让每个输入接收自己的值?

const F=()=>{
常量初始值列表=[
{
id:“a”,
姓名:“约翰”,
说明:“1as23”
},
{
id:“b”,
姓名:“埃里克”,
说明:“12ce3”
},
{
id:“c”,
姓名:“乔纳森”,
描述:“12vt3”
},
];
const[list,setList]=React.useState(initialList);
const[name,setName]=React.useState(“”);
const[description,setDescription]=React.useState(“”);
函数handleChangeUpdate(id、值、说明){
const newList=list.map((项)=>{
如果(item.id==id){
常量updateItem={
…项目,
名称:value,
说明:价值
};
返回updateItem;
}
退货项目;
});
设置列表(newList);
console.log(newList);
}
返回(
    {list.map((项)=>(
  • handleChangeUpdate(item.id,e.target.name)}defaultValue={item.name}> handleChangeUpdate(item.id,e.target.description)}defaultValue={item.description}>
  • ))}
); }; ReactDOM.render(,document.getElementById(“app”)


const[name,setName]=React.useState(“”)在您的状态中创建一个字符串,但列表中有三个对象。那是行不通的。另外,
e.target
是您的
元素,您所拥有的就是
.value
。例如,没有
e.target.description
。我的方法是制作一个
  • 组件来传递列表元素和一个函数来更改它。@ChrisG抱歉,我还是React的初学者。我不明白三个物体和状态有什么关系。我的意思是,当我只传递
    name
    id
    时,它就起作用了。但不是针对多个输入。是的,对不起,你有这些未使用的状态,我没有看到你很接近解决这个问题(甚至没有使用它们)。您需要类似于
    onChange={(e)=>handleChangeUpdate(item.id,“name”,e.target.value)}
    。然后您使用
    函数handleChangeUpdate(id,key,newValue)
    来处理更改。您很接近了,按照@ChrisG的建议,只想添加
    控制台.log(newList)不会记录更新的状态,而是记录当前渲染周期中的状态。这是一个问题,你会击中后得到更新理顺。