Jie*_*eng 8 reactjs redux react-redux
如果未经身份验证,我设置了要进行身份验证的路由,以便将用户重定向到登录页面.我还设置redux-persist为自动脱水我的身份验证状态,以便用户在刷新时保持登录状态.问题是这种补液太晚了,用户已经被重定向到登录页面
第一个位置更改是经过身份验证的路由,第二个是登录.注意在这些之后补充水分.理想情况下,它应该至少在@@ INIT之后?
fku*_*kov 14
persistStore用于使您的商店持久化的函数具有第三个参数callback,该参数在商店补充完成后被调用.您必须使用某种预加载器启动您的应用程序,该预加载器等待补液发生并仅在完成后呈现您的完整应用程序.
redux-persistdocs甚至有这个场景的配方.在你的情况下,所有的react-router东西也应该在初始加载器中呈现:
export default class Preloader extends Component {
constructor() {
super()
this.state = { rehydrated: false }
}
componentWillMount(){
persistStore(this.props.store, {}, () => {
this.setState({ rehydrated: true });
})
}
render() {
if(!this.state.rehydrated){
return <Loader />;
}
return (
<Provider store={store}>
<ConnectedRouter history={history}>
<App />
</ConnectedRouter>
</Provider>
);
}
}
const store = ...; // creating the store but not calling persistStore yet
ReactDOM.render(<Preloader store={store} />, ... );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3121 次 |
| 最近记录: |