ReactJS SocketIO setState到JSON对象

时间:2018-08-17 03:00:46

标签: javascript json reactjs setstate

在我上一个ReactJS with Sockets Nested JSON parsing data issue的线程中,我试图找出最好的方法来设置我的react组件的setState并使状态为JSON

我的代码示例将在此处显示JSON:

{
    "Object1": {
        "name": "1",
        "rank": "2"
    },
    "Object2": {
        "name": "3",
        "rank": "4"
    }
}

在我的React代码中,我正在这样设置状态。

componentDidMount() {
    this.socket.on('send data', this.updateState);
}

updateState(result) {
    this.setState({
        data: result
    });
    this.toObj = JSON.parse(this.state.data);
}

如何将setState作为JSON对象做什么,以便我可以随时使用应用程序中的数据?

1 个答案:

答案 0 :(得分:0)

setState之前进行解析,然后直接引用状态:

updateState(result) {
  const data = JSON.parse(result);
  this.setState({
    data
  });
}

render() {
  return (
     <ul>
       {this.state.data.map(obj => (
         <li><span>{obj.name}</span>: <span>{obj.rank}</span></li>
       )}
     </ul>
  )
}