如何使用钩子将对象数组推入状态

时间:2020-03-06 09:37:22

标签: reactjs react-hooks

我的useState为TINYTEXT

我得到响应并记录如下:

const [responses, setResponses] = useState([]);

日志显示为:

enter image description here

当我单击以打开6个项目的数组时,结果为enter image description here。 因此它是一个对象数组。 我尝试根据对象设置状态的初始值

const tempResults = res.data.data;
console.log(tempResults.length);
console.log(tempResults);

但是,当我登录时,状态仅具有初始值,并且没有附加响应数组。

我将状态设置为:

{
  "index": 0,
  "ds": "2020-03-06",
  "yhat_lower": -10712.5597359237,
  "yhat_upper": 25376.4649581317,
  "yhat": 6955.3671910982,
  "mape": 21.4472070205,
  "rmse": 667.0969808414,
  "mae": 475.3343871057,
  "smape": 5.143548286
}

但是,每个控制台的“响应”对象的状态为:

enter image description here

因此无法将Array对象保存到setResponses(...responses, tempResults); const x = typeof responses; console.log("TypeOfResponse", x); console.log("RESPONSES ", responses); 中。有什么事吗有什么建议吗?

1 个答案:

答案 0 :(得分:1)

如果res.data.data是一个数组

然后将其设置为setResponses

setResponses(res.data.data)

setResponses([...responses, ...res.data.data])