@Hellas

Как получать данные с сервера для компонентов?

Использую react-router, есть пути:

if (typeof window !== 'undefined') {
  const history = createBrowserHistory()
  const globalData = window.__INITIAL_STATE__

  ReactDOM.hydrate (
    <Router history={history}>
      <Switch>
        <Route exact path="/" render={() => <Page0 data={globalData}/>}/>
        <Route path="/page1" render={() => <Page1 data={globalData}/>}/>
        <Route path="/page2" render={() => <Page2 data={globalData}/>}/>
        <Route path="/page3" render={() => <Page3 data={globalData}/>}/>
      </Switch>
    </Router>,
    document.getElementById('app')
  )
}


При обновлении страницы данные получаются с сервера и раздаются компонентам, но при переходе необходимо в каждом компоненте, в componentWillMount, посылать запрос на получение данных и из его ответа обновлять state.

Есть ли возможность перехватывать переходы, чтобы вне компонента успеть выполнить получение данных и отправить компоненту также в виде props?
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Во-первых метод componentWillMount скоро будет deprecated. Не надо его использовать.
Лучшее место для запроса к серверу componentDidMount, пока не пришел ответ показывайте прелоадер.
Если используете redux то добавьте ключи isLoading и isError для каждой сущности/списка.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы