У меня есть эта проблема. В моем приложении React Native после входа в систему пользователь получает сообщение от сервера, информирующее его о роли, которую он играет в приложении (учитель, ученик), и в соответствии с этой ролью отображается другой пользовательский интерфейс. Дело в том, что мое действие по входу в систему отправляется через Redux (и я сохраняю некоторые вещи из ответа на redux), и я хочу перейти на разные экраны в соответствии с этим ответом сервера, но я не могу перейти от создателя действий redux. Я пытался найти решение из официальных документов https://reactnavigation.org/docs/navigating-without-navigation-prop/, но получаю эту ошибку: объект 'навигация' еще не инициализирован. Есть ли другой способ навигации после ответа от сервера, НО в соответствии с ним из-за действия приставки? Спасибо! Мое действие:
export const loginmyapp = (email, password) => {
return async dispatch => {
const response = await fetch(
'http://147.175.121.250:80/authenticate/login',
{
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: email,
password: password
})
}
);
if (!response.ok) {
const errorResData = await response.json();
console.log(errorResData);
const errorId = errorResData.error.message;
let message = 'Something went wrong!';
if (errorId === 'EMAIL_NOT_FOUND') {
message = 'Entered email not found!';
} else if (errorId === 'INVALID_PASSWORD') {
message = 'Entered password is not valid!';
}
throw new Error(message);
}
const resData = await response.json();
console.log(resData);
dispatch({
type: LOGINMYAPP,
token: resData.jwtToken,
relationId: resData.relationIDd,
info: resData.info
});
RootNavigation.navigate('SignedInZiak');
};
};
Я знаю, что здесь я буду обрабатывать ответ с помощью ifchecks, но просто этот .navigate не работает. Может кто-нибудь помочь мне, пожалуйста?