В моем файле App.js у меня есть RootContainer, обернутый тегами провайдера.
import React, { Component } from 'react';
import { Provider } from 'react-redux';
import store from './store';
import RootContainer from './screens/RootContainer';
export default class App extends React.Component {
render() {
return (
<Provider store={store}>
<RootContainer />
</Provider>
);
}
}
В RootContainer я отрисовываю MainNavigator, а также проверяю AsyncStorage с действием для токена.Если есть токен, который есть, я хочу перейти на другой экран, на котором у меня возникают проблемы.
import actions, connect, createBottomTabNavigator, etc.
class RootContainer extends Component {
constructor(props){
super(props);
}
componentWillMount() { this.props.checkForToken(); } // dispatch async action, success, token found
componentWillReceiveProps(nextProps) { this.authComplete(nextProps); }
authComplete(props) {
if(props.token) { // success, token exists
props.navigation.navigate('map'); // undefined is not an object (evaluating 'props.navigation.navigate')
// this.props.navigation.navigate('map); does not work either.
}
}
render() {
return ( <MainNavigator /> ); // loads fine when navigation route is commented out
}
}
const mapStateToProps = state => { return { token: auth.state.token } };
export default connect(mapStateToProps, actions)(RootContainer);
Что я делаю не так ??