Реагировать на массив набора хуков из API напрямую в состояние - PullRequest
1 голос
/ 06 мая 2020

Как я могу установить массив, который я получаю из 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)

I не хотят иметь массив внутри массива.

Ответы [ 2 ]

2 голосов
/ 06 мая 2020

Если data.favorites также является массивом, вы также должны использовать распространение в этом случае.

setFavorites(favorites => [...favorites, ...data.favorites]);
1 голос
/ 06 мая 2020

Вы пробовали это:

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

const { data } = await axios.get(url, { headers });
setFavorites(favorites => [...favorites, ...data.favorites]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...