【发布时间】:2025-11-24 21:15:01
【问题描述】:
我使用 Redux-persist 存储 config.autologin 属性。 当我创建一个 React-navigation 堆栈时,我想检查自动登录值,但此时状态尚未重新水化。 我认为 PersistGate 是我需要的,但这不是真的。 你能帮助我吗? 谢谢
App.js
export default class App extends React.Component {
render() {
return (
<Provider store={reduxStore}>
<PersistGate loading={null} persistor = {persistor}>
<AppContainer
ref={navigatorRef => {
NavigationService.setTopLevelNavigator(navigatorRef);
}}
/>
</PersistGate>
</Provider>
);
}
}
reduxStore
const persistState = {
key: 'root',
storage,
whitelist: ['config']
}
const persistedReducer = persistReducer(persistState, reducers)
export const reduxStore = createStore(persistedReducer, devToolsEnhancer({ realtime: true }))
export const persistor = persistStore(reduxStore)
应用导航
selectInitialRoute = () =>{
if(reduxStore.getState().config.autoLogin)
return 'DrawerStack'
else
return 'Home'
}
const defaultNavigation = createStackNavigator({
Home: loginNavigation,
DrawerStack: defaultDrawerNavigation
}, {
initialRouteName: this.selectInitialRoute(),
defaultNavigationOptions: {
header: null
},
}
)
const AppContainer = createAppContainer(defaultNavigation);
export default AppContainer
【问题讨论】:
标签: react-native redux react-navigation redux-persist