Ошибка 'undefined не является объектом (оценивает' _AppNavigator2.default.router ') для реализации React Navigation / Redux для React Native - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь встроить StackNavigator в свое хранилище редуктов, используя реагирующую навигацию, и получаю сообщение об ошибке здесь (и упомянуто выше в заголовке).

Ниже приведеномой код для моего реактивного проекта с использованием приставки.Ошибка появляется на моем редукторе, где я вызываю AppNavigator.router.

src / AppNavigator.js

import { StackNavigator, createStackNavigator } from 'react-navigation';
import Welcome from './screens/Welcome';
import Dashboard from './screens/Dashboard';
import Login from './screens/Login';

export const AppNavigator = StackNavigator(
  {
    Welcome: {
      screen: Welcome,
      navigationOptions: ({
        header: 'null',
        headerStyle: {
          backgroundColor: 'white',
          borderBottomWidth: 0,
        },
        headerTitleStyle: {
          fontSize: 30,
          fontFamily: 'Roboto-Bold',
        },
      }),
    },
    Dashboard: {
      screen: Dashboard,
      navigationOptions: ({
        title: 'Dashboard',
        headerStyle: {
          backgroundColor: 'white',
          borderBottomWidth: 0,
        },
        headerTitleStyle: {
          fontSize: 30,
          fontFamily: 'Roboto-Bold',
        },
        headerLeft: null,
      }),
    },
    Login: {
      screen: Login,
      navigationOptions: ({
        title: 'Login or Register',
        headerStyle: {
          backgroundColor: 'white',
          borderBottomWidth: 0,
        },
        headerTitleStyle: {
          fontSize: 30,
          fontFamily: 'Roboto-Bold',
        },
        headerLeft: null,
      }),
    },
  },
  {
    initialRouteName: 'Dashboard',
  },
);

src / AppWithInternalState.js

import React from 'react';
import { connect } from 'react-redux';
import { addNavigationHelpers } from 'react-navigation';
import AppNavigator from './AppNavigator';

const AppWithInternalState = ({ dispatch, nav }) => (
  <AppNavigator navigation={
    addNavigationHelpers({
      dispatch,
      state: nav,
    })
  }/>
);

const mapStateToProps = state => ({
  nav: state.nav,
});

export default connect(mapStateToProps)(AppWithInternalState);

/src / redurs / navReducer.js

import React from 'react';
import AppNavigator from '../AppNavigator';

const router = AppNavigator.router;
const mainNavAction = router.getActionforPathandParams('Welcome');
const initialNavState = router.getStateForAction(mainNavAction);

export default navReducer = (state = initialNavState, action) => (
  router.getStateForAction(action, state)
);

Цените любую помощь!

1 Ответ

0 голосов
/ 09 июня 2018

import AppNavigator from '../AppNavigator'; -> AppNavigator не определен, поскольку у вас нет экспорта по умолчанию.

В AppNavigator.js используйте export default AppNavigator = StackNavigator (обратите внимание на по умолчанию вместо const ).

Альтернатива: import { AppNavigator } from '../AppNavigator'; в navReducer.js

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