Reactjs向state中添加对象

Reactjs adding an object to state

本文关键字:添加 对象 state Reactjs      更新时间:2023-09-26

我使用reactjs来填充状态。用户在他/她登录时添加一个新成员

下面的代码可以运行

var users = this.state.users;
users.push(member);
this.setState({users: users});

但是当我试图将所有内容都包装在一行代码中时,它失败了

this.setState({users: this.users.state.push(member)});

当我尝试上面的我得到一个错误进一步在我的列表。jsx

Uncaught TypeError: this.props.users.map is not a function

你知道这是什么原因吗?我在想,当我使用单行解决方案时,错误的对象被传递到状态?

谢谢!

这是因为.push返回新的长度(int number),而不是数组,

var data = {
    users: []
};
data.users = data.users.push(10);
console.log(typeof data.users); // number

.push -返回方法所在对象的新长度属性调用。

可以用.concat代替.push

this.setState({
   users: this.state.users.concat(member)
});

this.setState({
  users: [...this.state.users, member]
});