Я использую React Native Router Flux в своем мобильном приложении для маршрутизации.
Структура страницы похожа на
Login.js Получить пароль пользователя и подтверждение имени пользователя и сохранить токен пользователя в AsyncStorage. Если в приложении есть токен пользователя, перенаправить пользователя на MainPage.js
(перенаправление в методе ComponentWillMount()
)
MainPage.js Выполните вызов API для моего внутреннего сервера для получения списка некоторых данных
DetailPage.js Выполните вызов API для моего внутреннего сервера для получения некоторых подробных данных.
-
Структура моего маршрутизатора;
<Roter>
<Scene key="root">
<Scene initial component={Login} key="login" />
<Scene component={MainPage} key="mainpage" />
<Scene component={DetailPage} key="detailpage" />
</Scene>
</Router>
-
Проблема в том, что
Когда я хочу перейти с MainPage до DetailPage , я не могу использовать Actions.detailpage()
без Actions.detailpage({type:"reset"})
Если я пытаюсь использовать только Actions.detailpage()
, приложение зависает на главной странице.Но я console.log («это страница с подробной информацией»), я вижу вывод.На самом деле я могу перемещаться с Actions.detailpage()
, но мой DetailPage не может загрузить на экран.
У меня есть сетевые вызовы.Разве навигационный стек не обрабатывает этот тяжелый процесс?
Если я использую Actions.detailpage({type:"reset"})
, история навигации отсутствует.Поэтому я не могу использовать кнопки «Назад» на верхней панели навигации.
Что мне здесь не хватает?
Свойство сброса действий: очищает стек маршрутизации и помещает сцену в первый индекс.Переход не произойдет.
https://github.com/aksonov/react-native-router-flux/blob/master/docs/API.md#actions
Редактировать:
Когда я удаляю все свои настройки маршрутизации и добавляю две пустые сцены, например PageA.jsи PageB.js, все еще замерзает, когда я пытаюсь перейти от PageA к PageB
<Roter>
<Scene key="root>
<Scene initial component={PageA} key="page_a" />
<Scene component={PageB} key="page_b" />
</Scene>
</Router>
Тем не менее я получаю ту же ошибку.Что-то в моем приложении блокирует рендеринг страниц и загрузку сцен.Как я проверяю эту проблему?
Также мои зависимости:
"dependencies": {
"@react-native-community/async-storage": "^1.4.2",
"react": "16.8.3",
"react-native": "0.59.8",
"react-native-elements": "^1.1.0",
"react-native-facebook-account-kit": "^1.1.0",
"react-native-fbsdk": "^0.8.0",
"react-native-iap": "^2.5.5",
"react-native-router-flux": "^4.0.6",
"react-native-vector-icons": "^6.5.0"
},