Javascript 意外的标记setState到对象属性
我想设置一个对象的状态,所以我这样做了Javascript 意外的标记setState到对象属性,javascript,reactjs,Javascript,Reactjs,我想设置一个对象的状态,所以我这样做了 const user = this.state.user; this.setState({ user['id']: 123 //error here }); 我遇到了意外的令牌错误,我还尝试了user.id和user[id],出了什么问题?这不是初始化对象的有效语法。用户是一个对象,id是该对象上的属性。像这样使用setState: const user = this.state.user; this.setState
const user = this.state.user;
this.setState({
user['id']: 123 //error here
});
我遇到了意外的令牌错误,我还尝试了
user.id
和user[id]
,出了什么问题?这不是初始化对象的有效语法。用户是一个对象,id是该对象上的属性。像这样使用setState
:
const user = this.state.user;
this.setState({
user: {
id: 123
}
});
有关在javascript中使用对象的更多信息,请参阅。我假设您只想更改
id
,但仍然保留user
的其他属性。你可以这样做
const user = this.state.user;
this.setState({
user: {
...this.state.user,
id: 123
}
});
由于要将状态复制到一个单独的变量,因此只需修改对象,然后将其设置为状态
const user = {...this.state.user};
user['id'] = 123
this.setState({
user
});
这种方法不起作用,因为不能使用setState