Javascript асинхронно ожидает перенастройки одного значения массиваJavascript

Форум по Javascript
Ответить
Anonymous
 Javascript асинхронно ожидает перенастройки одного значения массива

Сообщение Anonymous »

Я новичок в React, пытаюсь получить данные из вызова API и обновить контекст с помощью результата. Я не могу понять, в чем проблема.
У меня есть эта функция для получения данных, она должна возвращать массив:

Код: Выделить всё

export async function fetchAircraft(bearerToken) {
const response = await axios.get(apiURL + 'User-getAircraft',
{headers: {
'Authorization': `Bearer ${bearerToken}`,
'content-type': 'application/json'
}}
);

console.log('http resp: ',response.data);

return response.data;
}
Я вызываю функцию fetchAircraft со своей панели управления:

Код: Выделить всё

useEffect(() => {
async function getAircraft() {
const aircraft = await fetchAircraft(userContext.idToken);

console.log('dashboard: ',aircraft);
userContext.setAircraft(aircraft);

}

getAircraft();

navigation.setOptions({
headerRight: () => ()
})
},[])
Когда моя информационная панель загружается и я просматриваю журналы, журнал консоли в функции fetchAircraft показывает только один элемент в массиве (как и журнал консоли в useEffect. Если я закомментирую вызов userContext.setAircraft, оба журнала консоли покажут правильный массив со всеми включенными элементами. Я не могу понять, почему вызов установки самолета в контексте ограничивает то, что возвращается функцией fetchAircraft.

Подробнее здесь: https://stackoverflow.com/questions/798 ... e-of-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»