[英]React Native Error “undefined is not an object (evaluating '_this2.props.navigation.navigate')”
[英]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
。
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',
},
);
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);
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.