簡體   English   中英

如何在 React js 中將新項目與鈎子連接起來?

[英]How to concatenate a new item with hooks in react js?

我有以下結構:

在此處輸入圖像描述

我想要做的是用新數據更新指標:

  const [data, setData] = useState<any>({});
  getServerResourceUsage(serverId, intervalTime)
    .then(res => {
      setData((state: any) => ({
        ...res.data.data,
        metrics: {
          time_series: state.metrics.time_series.concat(res.data.data.metrics.time_series)
        }
      }));
    })
    .catch(error => {
      console.log(error.response)
    })
    .finally(() => {
      setLoading(false);
    });

現在我得到的是以下錯誤:

在此處輸入圖像描述

我正在努力找出為什么 state 是空的,我什至如何控制台記錄它的值來調試問題。

更改您聲明 state 的方式,因此它不會在第一次獲取時給您錯誤。

const [data, setData] = useState<any>({
    metrics: {
        time_series: []
    }
});

而 setState 參數應該是一個新數據而不是一個回調。

setData({
  ...res.data.data,
  metrics: {
    time_series: data.metrics.time_series.concat(res.data.data.metrics.time_series)
  }
});

或者您也可以傳播現有的 time_series:

setData({
  ...res.data.data,
  metrics: {
    time_series: [...data.metrics.time_series, ...res.data.data.metrics.time_series]
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM