初心者の方が先に進む方法がわかりません。トークンが格納されている場合、ホーム画面にナビゲートする。react-native o.w.ログイン画面
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"
}
);
}
App.js
import RootNavigation from './root';
const App =() => ({
render() {
return (
<Provider store = {store} >
<View style={styles.container}>
<RootNavigation/>
</View>
</Provider>
);
}
})
root.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);
で:私のroutes/main.js
で は、私は、このスタックナビゲーターを持っていますtrue
渡されている、しかし、それは私が私が私のroot.jsにこのような何かを達成
AsyncStorage.getItem('authToken');
を使用して取得することになったtrue or false
かもしれ
注:コードの下が正しくありませんが、それは何の説明が欲しいです。
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
を使用しています。 助けてください!
ここに該当しないスプラッシュ画面があれば、いい音がします。 –
私が説明したアプローチはスプラッシュ画面を必要としません。最初の画面は、認証を確認して応答する画面です。元のアプローチを使用すると、この例が役立つかもしれません。 https://medium.com/the-react-native-log/building-an-authentication-flow-with-react-navigation-fb5de2203b5c – Corey