Mig*_*ens 2 javascript flux pusher reactjs
当新成员登录时,我使用 Reactjs 来填充state.users 。
以下代码正在运行
var users = this.state.users;
users.push(member);
this.setState({users: users});
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将所有内容包装在一行代码中时,它失败了
this.setState({users: this.users.state.push(member)});
Run Code Online (Sandbox Code Playgroud)
当我尝试上述操作时,我的 list.jsx 中出现错误
未捕获的类型错误:this.props.users.map 不是函数
知道是什么原因造成的吗?我在想,当我使用单行解决方案时,错误类型的对象被传递到状态中?
谢谢你!
发生这种情况是因为.push返回新长度(整数),而不是数组,
var data = {
users: []
};
data.users = data.users.push(10);
console.log(typeof data.users); // numberRun Code Online (Sandbox Code Playgroud)
.push- 返回调用该方法的对象的新长度属性。
您可以使用.concat代替.push
this.setState({
users: this.state.users.concat(member)
});
Run Code Online (Sandbox Code Playgroud)
或者
this.setState({
users: [...this.state.users, member]
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12132 次 |
| 最近记录: |