如何在 ReactJS 中通过 ref 动态设置状态
How to setState by ref dynamically in ReactJS
我有这个
handleChange(e){
this.setState(
update(this.state, {
user: {
$merge: {
firstname_user: this.firstname_user.refs.input.value,
lastname_user: this.lastname_user.refs.input.value,
password_user: this.password_user.refs.input.value,
newPassword_user: this.newPassword_user.refs.input.value,
confirmPassword_user: this.confirmPassword_user.refs.input.value,
}
}
})
)
}
我只想做一个通用的 setState
。
因为目前,当我更改一个输入时,我的所有值都会更改 setState
。
我试过类似的方法,但我可以访问 ref
。密钥 [e.target.name]
有效,但使用相同的方法,值无效。
this.setState(
update(this.state, {
user: {
$merge: {
[e.target.name]: this.[e.target.name].refs.input.value,
}
}
})
);
请问如何解决?
似乎是语法错误,试试这个:
$merge: {
[e.target.name]: this[e.target.name].refs.input.value,
}
我有这个
handleChange(e){
this.setState(
update(this.state, {
user: {
$merge: {
firstname_user: this.firstname_user.refs.input.value,
lastname_user: this.lastname_user.refs.input.value,
password_user: this.password_user.refs.input.value,
newPassword_user: this.newPassword_user.refs.input.value,
confirmPassword_user: this.confirmPassword_user.refs.input.value,
}
}
})
)
}
我只想做一个通用的 setState
。
因为目前,当我更改一个输入时,我的所有值都会更改 setState
。
我试过类似的方法,但我可以访问 ref
。密钥 [e.target.name]
有效,但使用相同的方法,值无效。
this.setState(
update(this.state, {
user: {
$merge: {
[e.target.name]: this.[e.target.name].refs.input.value,
}
}
})
);
请问如何解决?
似乎是语法错误,试试这个:
$merge: {
[e.target.name]: this[e.target.name].refs.input.value,
}