@WizardW

В каком месте получать initState в Redux в моем случае?

В стейте Redux храню информацию о пользователе, при первом же заходе на сайт будет отправляться запрос на сервер за информацией по пользователю. Понимаю, что легче сделать в DidMount в рутовом компоненте, но как в моем случае это делать?
Мой index.js
ReactDOM.render(
  <Provider store={store}>
    <Router history={history}>{routes}</Router>
  </Provider>,
  document.getElementById("root")
);

Все роуты routes.js( по сути это и есть корень ):
const routes = (
  <Switch>
    <PrivateRoute exact path="/messages" component={MessagesPageContainer} />
    <RestrictedRoute exact path="/login" component={LoginPageContainer} />
    <RestrictedRoute exact path="/register" component={RegisterPageContainer} />
    <Route component={NoMatch} />
  </Switch>
);

export default routes;


Есть действие получения данных о пользователи:
export const onInitUser = () => dispatch => {
  const capi = new UserApi();
  const res = capi.getUser();
  res.then(user => {
    dispatch({
      type: userActions.FETCH_INIT_USER,
      data: { user: user }
    });
  });
};
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Я обычно делаю так:
store.dispatch(clientInit());

ReactDOM.render(
  <Provider store={store}>
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </Provider>,
  document.getElementById('root'),
);

В clientInit выполняются все действия необходимые для инициализации приложения.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы