Попытка обновить состояние после загрузки данных на useEffect.Возможность обновления локальной переменной, но не состояния.Я следую примеру из https://www.robinwieruch.de/react-hooks-fetch-data/, где Робин устанавливает состояние аналогичным образом.По некоторым причинам, переменная состояния в моем случае никогда не устанавливается правильно.
Использование AWS Amplify для загрузки данных graphQL.Кажется, работает успешно для локальной переменной, но не переменной состояния.
const [serviceTypes, setServiceTypes] = useState([{}]);
let myServiceTypes = [{}]; // try it with a local variable to debug
useEffect(() => {
let unmounted = false;
async function fetchData() {
const result = await API.graphql(
graphqlOperation(queries.listServiceTypes)
);
console.log(result);
console.log('setting service types...');
console.log(result.data.listServiceTypes.items);
setServiceTypes(result.data.listServiceTypes.items);
myServiceTypes = result.data.listServiceTypes.items;
console.log(myServiceTypes); // set correctly
console.log(serviceTypes); // empty
}
if (!unmounted) {
fetchData();
}
return () => {
unmounted = true;
};
}, []);
Ожидается, что serviceTypes будет установлен на загруженные данные.Вместо этого он пуст.