Помогите, пожалуйста, уже всю голову сломал. Есть функциональный компонент, в нём есть стейт и есть необходимость отловить выход из этого компонента и сохранить стейт в файл. Делаю вот так:
React.useEffect(
() =>
navigation.addListener('beforeRemove', (e) => {
// Prevent default behavior of leaving the screen
e.preventDefault();
// Prompt the user before leaving the screen
Alert.alert(
"Вы уверены?",
"Вы точно хотите завершить?",
[
{ text: "Нет, продолжаем", style: 'cancel', onPress: () => { } },
{
text: "Да, завершить",
style: 'destructive',
onPress: () => {
writeData(logData)
navigation.dispatch(e.data.action)
},
},
]
);
}),
[navigation]
);
Стейт это собственно logData. Проблема в том, что я всегда вижу только дефолтное состояние стейта. И даже если пытаюсь обратиться к нему не из обработчика события, а из writeData (это функция, объявленная внутри компонента), то всё равно получается то же самое. Актуальное значение стейта получить не выходит никак.
Понятно, что тут есть что-то простое, чего я не понимаю, подскажите что?