首页 > 解决方案 > 具有解构变量的 React SetState 提供了错误的结果

问题描述

handleChange()根据名称属性使用我的多个输入。

在输入更改时,我将状态设置如下:

this.setState({['user.' + event.target.name]: event.target.value});

我在解构中使用 user 作为字符串来将状态设置为用户对象。所以而不是得到:

user:{userName:'asdasd',userEmail:'ada@asdas.com'}

我实际上得到:

在此处输入图像描述

本质上,我的问题是:我如何继续使用handleChange()解构对象键来处理不同的调用者,但仍然嵌套在用户之下。

标签: reactjsecmascript-6

解决方案


尝试使用它

const user = {...this.state.user}
user[event.target.name] = event.target.value
this.setState({
    user
})

推荐阅读