Задать вопрос

Как обновить компонент React.js?

Есть вот такая штука
<Route path="/" component={App}>
      <IndexRoute component={Main} />
      <Route path="data" component={Data} />
      <Route path="about" component={About} />
    </Route>

Как сделать чтобы у всех пользователей, которые открыли data эта страница перезагружалась раз в секунду не методом window.location.reload(), а как-то более кошерно?
  • Вопрос задан
  • 8298 просмотров
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
romanonthego
@romanonthego
в компоненте Data:
componentDidMount() {
   this.refresher = setInterval(1000, () => this.forceUpdate())
}

componentWillUnmount() {
   clearInterval(this.refresher)
}

Это отвечая на вопрос. Но вообще - если _сам_ компонент не перерисовывает страницу - значит данные в props/state не изменились, а значит render вернет тот же результат. Правильно было бы подписаться на поток данных (через websocket или лонг-пуллинг - не важно) и рендерить изменения только когда что-то реально изменилось. Я так понял что перегрузка страницы в данном случае заменят рефреш данных - так не надо, надо лучше.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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