Javascript 将钩子集数组从api直接反应到状态

Javascript 将钩子集数组从api直接反应到状态,javascript,reactjs,typescript,react-hooks,Javascript,Reactjs,Typescript,React Hooks,如何将从api直接获取的数组设置为钩子。 api返回一个完整的数组,而不是片段 如果我这样做: const [favorites, setFavorites] = useState(['']); const { data } = await axios.get(url, { headers }); setFavorites(favorites => [...favorites, data.favorites]); 我得到的输出不正确: (2) ["", Array(2)]

如何将从api直接获取的数组设置为钩子。 api返回一个完整的数组,而不是片段

如果我这样做:

  const [favorites, setFavorites] = useState(['']);

  const { data } = await axios.get(url, { headers });
  setFavorites(favorites => [...favorites, data.favorites]);
我得到的输出不正确:

(2) ["", Array(2)]
0: ""
1: (2) ["5ea42eae8750131824a5728f", "5ea5d29230778c1cd47e02dd"]
length: 2
__proto__: Array(0)
我不希望在数组中包含数组。

如果data.favorites也是数组,则在这种情况下也必须使用spread

setFavorites(favorites => [...favorites, ...data.favorites]);
如果data.favorites也是一个数组,那么在这种情况下也必须使用spread

setFavorites(favorites => [...favorites, ...data.favorites]);
你试过这个吗:

const [favorites, setFavorites] = useState(['']);

const { data } = await axios.get(url, { headers });
setFavorites(favorites => [...favorites, ...data.favorites]);
你试过这个吗:

const [favorites, setFavorites] = useState(['']);

const { data } = await axios.get(url, { headers });
setFavorites(favorites => [...favorites, ...data.favorites]);

这似乎可行,但第一个数组项为空,我如何防止?它在数组位置[1]开始填充,而不是[0]这似乎可行,但第一个数组项为空,我如何防止?它在数组位置[1]开始填充,而不是[0]这似乎可行,但第一个数组项为空,如何防止?它从数组位置[1]开始填充而不是[0]这似乎可行,但第一个数组条目为空,如何防止?它从数组位置[1]开始填充而不是[0]