已经有几天了,我被困在一个点,作为一个初学者,我不知道如何继续前进。在我的routes/main.js
中,我有这个堆栈导航器:
export const createRootNavigator = (loggedIn = false) => {
return StackNavigator(
{
LoggedIn: {
screen: LoggedIn
},
LoggedOut: {
screen: LoggedOut
}
},
{
headerMode: loggedIn ? '' : 'none',
mode: Platform.OS === 'ios' ? 'modal' : 'card',
initialRouteName: loggedIn ? "LoggedIn" : "LoggedOut"
}
);
}
应用程序.js
import RootNavigation from './root';
const App = () => ( {
render() {
return (
<Provider store = {store} >
<View style={styles.container}>
<RootNavigation/>
</View>
</Provider>
);
}
})
根.js
import React, {Component} from 'react';
import { AsyncStorage} from 'react-native';
import { createRootNavigator} from './src/routes/main';
let RootNavigation = createRootNavigator(true);
export default class Root extends Component {
render() {
return (
< RootNavigation / >
);
}
}
目前正在通过 root.js,但它可能是我应该 使用的let RootNavigation = createRootNavigator(true);
true
true or false
AsyncStorage.getItem('authToken');
所以我在我的root.js中实现了类似的东西
注意:下面的代码不正确,但它解释了我想要的。
import React, {Component} from 'react';
import {AsyncStorage} from 'react-native';
import { createRootNavigator} from './src/routes/main';
// Not sure about the code placement of this part.
let RootNavigation;
let token = await AsyncStorage.getItem('authToken');
if(token) {
RootNavigation = createRootNavigator(true);
}else {
RootNavigation = createRootNavigator(false);
}
export default class Root extends Component {
render() {
return (
< RootNavigation / >
);
}
}
怎样才能实现这个功能?我在我的项目中使用react-redux
和。react-thunk
请帮忙!!