onStateChange для NavigationContainer с неопределенным параметром - PullRequest
1 голос
/ 09 марта 2020

Я использую NavigationContainer внутри NavigationContainer с React Navigation 5. До этого я тестировал NavigationContainer из навигации 5 внутри createAppContainer в навигации 4, и он работал нормально.

Проблема в : когда мой второй NavigationContainer вызывает функцию onStateChange, полученный параметр не определен. Кроме того, при использовании ссылки метод getRootState также возвращает неопределенное значение. Я могу использовать ссылку для навигации между экранами, а также нормально вызывать функцию goBack.

Пример кода:

const navigationRef = React.useRef();

Вторая навигация:

<NavigationContainer
  independent={true}
  ref={navigationRef}
  onStateChange={navigationChanged}
>
  <BusinessNavigation />
</NavigationContainer>;

Работает штраф:

navigationRef.current.resetRoot({
  routes,
  index: 0
});
navigationRef.current.goBack();

проблемы:

navigationRef.current.getRootState(); //returns always undefined
const navigationChanged = (params: any) => {
  console.log(params); //is undefined
};

1 Ответ

0 голосов
/ 03 апреля 2020

Я сейчас использую слушатель, и он прекрасно работает, чтобы решить мою проблему. Пример кода:

navigationRef.current.addListener('state', e => {
    const state = e.data.state; //works
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...