How to connect navigator created dynamically by the function call to redux? Depending on the authorization status (token != null), initial route of LoginNavigator is changing.
Code:
App.js
import createLoginNavigator from './navigators/LoginNavigator';
class App extends Component {
render() {
const LoginNavigator = createLoginNavigator(this.props.token !== null);
return <LoginNavigator/>;
}
}
const mapStateToProps = ({ auth }) => ({
token: auth.get('token')
});
export default connect(mapStateToProps, null)(App);
Login navigator:
import LoginPage from '../pages/LoginPage';
import RootNavigator from '../navigators/RootNavigator';
export default createLoginNavigator = (authState) => StackNavigator({
Login: { screen: LoginPage },
RootNavigator: { screen: RootNavigator }
}, {
initialRouteName: authState ? 'RootNavigator' : 'Login'
});
I can't just call this function in navigation reducer, because it will be other router:
import Navigator from '../navigators/LoginNavigator';
export const navReducer = (state, action) => {
const nextState = Navigator.router.getStateForAction(action, state);
return nextState || state;
};