Мое начальное состояние в магазине приставки
const initialState = {
token:localStorage.getItem('token'),
isAuthenticated: null,
isLoading: false,
user:null,
}
Мой компонент приложения выглядит следующим образом: store.dispatch (loadUser ()); проверить токен локального хранилища и загрузить пользователя из API, если токен существует и исправлен.
class App extends Component {
componentWillMount() {
store.dispatch(loadUser());
}
render() {
return (
<div className="App">
<Provider store={store}>
<Router>
<BaseRouter/>
</Router>
</Provider>
</div>
);
}
}
export default App;
все работает нормально, но когда я перезагружаю компонент в браузере, он сразу же перенаправляет меня к компоненту, несмотря на то, что инструменты dev-редукса показывают, что пользователь загружен и isAuthenticated: true . Мой вопрос: как я могу загрузить мой избыточный магазин перед функцией render () ?? Или есть другие идеи, чтобы заставить его работать правильно ??
class ArticleList extends Component{
static propTypes = {
articles: PropTypes.array.isRequired,
getArticles: PropTypes.func.isRequired,
}
componentWillMount(){
this.props.getArticles();
}
render(){
console.log('is_auth',this.props.isAuthenticated);// console shows NULL
if (!this.props.isAuthenticated) {
return <Redirect to="/login" />;
}
return(
<Fragment>
<Articles data={this.props.articles}/>
</Fragment>
)
}
}
const mapStateToProps = state =>({
articles: state.articleReducer.articles,
isAuthenticated: state.authReducer.isAuthenticated
})
export default connect(mapStateToProps,{getArticles})(ArticleList);
Заранее спасибо!