useRef.current не определен даже в хуке useEffect - PullRequest
0 голосов
/ 19 апреля 2020

Я новичок, чтобы реагировать и реагировать-нативно. Я пытаюсь настроить Firebase для аналитики. Я использую реактивный нативный редуктор с реактивным нативным редуксом. Также использую реагирование-навигацию.

Код из приложения. js в моем собственном приложении реакции:

const App = () => {
  const routeNameRef = React.useRef(null);
  const navigationRef = React.useRef(null);

  React.useEffect(() => {
    console.log('hrhr');
    console.log(routeNameRef);
    console.log(navigationRef);
    const state = navigationRef.current.getRootState();

    // Save the initial route name
    routeNameRef.current = getActiveRouteName(state);
  }, []);

  return (
    <Provider store={persistStore.store}>
      <PersistGate loading={null} persistor={persistStore.persistor}>
        <NavigationContainer
          ref={navigationRef}
          onStateChange={state => {
            const previousRouteName = routeNameRef.current;
            const currentRouteName = getActiveRouteName(state);

            if (previousRouteName !== currentRouteName) {
              // The line below uses the @react-native-firebase/analytics tracker
              // Change this line to use another Mobile analytics SDK
              analytics().setCurrentScreen(currentRouteName, currentRouteName);
            }

            // Save the current route name for later comparision
            routeNameRef.current = currentRouteName;
          }}>
           {/***/}
        </NavigationContainer>
      </PersistGate>
    </Provider>
  );
};

Журналы:

LOG  hrhr
LOG  {"current": undefined}
LOG  {"current": undefined}

Версии:

"react": "16.13.1",
"react-native": "0.61.5",

Приложение также имеет зависимости от реагирующего нативного редукса и огненной базы.

ОБНОВЛЕНИЕ

useEffect иногда вызывается для l oop после приложение перезагружается, хотя я передаю пустой массив в useEffect ().

UPDATE

После удаления тегов PersistGate JSX все работает нормально. Пожалуйста, дайте мне знать, как я могу это исправить.

1 Ответ

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

Это работает, когда я извлекаю полный <NavigationContainer> в отдельный компонент и использую там useEffect. Не знаю, что было причиной root.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...