【问题标题】:Reactjs adding an object to stateReactjs将对象添加到状态
【发布时间】:2015-08-05 10:50:25
【问题描述】:

当他或她登录时,我正在使用 reactjs 用新成员填充 state.users

以下代码正在运行

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

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

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

当我尝试上述操作时,我的 list.jsx 中出现错误

未捕获的类型错误:this.props.users.map 不是函数

知道是什么原因造成的吗?我在想,当我使用单行解决方案时,会将错误类型的对象传递到状态中?

谢谢!

【问题讨论】:

    标签: javascript reactjs pusher flux


    【解决方案1】:

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

    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]
    });
    

    【讨论】:

      猜你喜欢
      • 2023-01-14
      • 1970-01-01
      • 2019-02-23
      • 2021-10-06
      • 1970-01-01
      • 2019-06-16
      • 1970-01-01
      • 2012-03-15
      • 1970-01-01
      相关资源
      最近更新 更多