如何在React钩子中动态更新React状态对象数组

时间:2020-07-22 07:54:54

标签: reactjs react-hooks

下面是我的代码块,我要在其中更新来自mqtt的动态数据以追加到列表中。 数据将每秒在MQTT中发布。

const [liveData, setLiveData] = useState([]);

mqttClient.on('message', (topic, payload) => {
    // console.log('mqttClient payload message: ', topic, payload.toString());
    const msg = JSON.parse(payload.toString());
    {
      msg && msg.map((itm) => {
        setLiveData(prevLiveData => ({
          ...prevLiveData, [itm["tag"]]: itm["value"]
        }))
         setLiveData(prevLiveData => ({
           ...prevLiveData, [itm["tag"] + "-timestamp"]: [parseInt(itm["timestamp"]) * 1000, parseFloat(itm["value"])]
         }));

      })
    }
});

使用上面的代码,我只获得列表中的最后一条记录。

0 个答案:

没有答案