我想将状态设置为一个对象,所以我做
const user = this.state.user;
this.setState({
user['id']: 123 //error here
});
我收到了意外的令牌错误,我还尝试了user.id
和user[id]
,这有什么不对?
答案 0 :(得分:1)
我假设您只想更改id
,但仍保留user
的其他属性。你可以这样做。
const user = this.state.user;
this.setState({
user: {
...this.state.user,
id: 123
}
});
答案 1 :(得分:0)
这不是初始化对象的有效语法。用户是一个对象,id是该对象的属性。像这样使用setState
:
const user = this.state.user;
this.setState({
user: {
id: 123
}
});
有关在javascript中使用对象的更多信息,请参阅this guide。
答案 2 :(得分:0)
由于您无论如何都要将状态复制到单独的变量,您只需修改对象然后将其设置为状态
const user = {...this.state.user};
user['id'] = 123
this.setState({
user
});
你的方式不起作用,因为你不能直接使用setState