Reactjs向state中添加对象
Reactjs adding an object to state
我使用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]
});
相关文章:
- FabricJs-限制主对象内添加对象的移动区域
- 向Angular作用域对象添加对象数组——TypeError
- Javascript使用+添加对象
- 动态添加对象的jQuery事件处理程序
- 添加JQuery UI在Meteor中添加对象后可调整大小
- 在我的上下文中添加对象的动态方法
- 如何检测是否已使用 angular.forEach AngularJS 添加对象
- 在对象coffeescript中添加对象数组
- 使用Jquery在单击“”时显示表单;添加对象”;按钮
- 我可以向数组添加对象键吗
- 向扩展数组的JS集合添加对象(继承?)
- 尝试通过从自动完成推送添加对象时缺少 $$Hashkey
- 添加对象值 Javascript
- 在上传问题时添加对象
- 如何使用 javascript 的变量名称在数组中添加对象属性
- 在 JavaScript/TypeScript 中动态地“直接”添加对象属性到“this”
- 如何仅当对象不存在时才使用javascript添加对象
- 如何在数组末尾添加对象的副本
- rails在javascript url中添加对象
- ThreeJS-按不同顺序添加对象会影响alpha/显示