繁体   English   中英

错误'未定义不是对象(评估'_AppNavigator2.default.router')的React Native的React导航/ Redux实现

[英]Error 'undefined is not an object (evaluating '_AppNavigator2.default.router') for React Navigation / Redux Implementation for React Native

我正在尝试使用react-navigation将StackNavigator构建到我的redux存储中,并且在这里 (和标题中已提到)不断收到错误。

以下是我使用redux的react-native项目的代码。 该错误在我调用AppNavigator.router减速器上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/reducers/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)
);

感谢任何帮助!

import AppNavigator from '../AppNavigator'; -> AppNavigator未定义,因为您没有默认导出。

AppNavigator.js使用export default AppNavigator = StackNavigator (注意默认值而不是const )。

替代方法: import { AppNavigator } from '../AppNavigator'; navReducer.js

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM