使用reactJS中的变量将值设置为嵌套状态
我定义了一个变量,它将值粘贴为userInfo中的键使用reactJS中的变量将值设置为嵌套状态,reactjs,state,Reactjs,State,我定义了一个变量,它将值粘贴为userInfo中的键 this.state = { userInfo: { firstName: "", lastName: "", email: "" } } //_________________________________________ onChange = (e)=>{ var stateChild = e.target.name // stateChild her
this.state = {
userInfo: {
firstName: "",
lastName: "",
email: ""
}
}
//_________________________________________
onChange = (e)=>{
var stateChild = e.target.name // stateChild here is variable which will return (firstname, lastName or email) of userInfo
var userInfo = {
// ...this.state.userInfo
}
userInfo.stateChild = e.target.value; // I want to paste state child's value here
console.log(userInfo.stateChild);
}
我没有在您的处理程序中设置任何
setState
。您是否尝试过:
this.state = {
userInfo: {
firstName: "",
lastName: "",
email: ""
}
};
onChange = e => {
this.setState(prevState => ({
userInfo: {
...prevState.userInfo,
[e.target.name]: e.target.value
}
}));
};
使用这个函数,它在userInfo中创建了新的密钥。我希望修改与e.target.name匹配的键的值新创建的键是什么?我的意思是,如果e.target.name=firstName,它不会将值传递给firstName。似乎创建了新的名字。不,它不能是对象中的两个相同的键:)