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

Как задать отображение spinner до ответа от сервера reactJS?

Доброго времени!
Заранее извиняюсь за столь большую писанину.
Есть контейнер списока фильмов, который отрисовывает список только после того как в store redux изменится свойство isFetching >на ture и при false отображает мой Spinner.

Дилемма в том что во первых отображение спиннера даже не заметно т.к оно длится доли секунд (есть ли смысл вешать таймер?).
Далее я попробовал такой подход для отображения спиннера когда я переключаю страницу/изменяю фильтр
Вызываю экшн(либо в action запроса, либо только при нажатии на кнопку переключения страниц) и в reducer меняю статус isFetching на false но тогда происходит небольшой скачек т.к список отрисовывается каждый раз с нуля.
if ( this.props.AllMovies.isFetching) {
return (
     <MoviesList/>
)
} else{
<Spinner/>
}

Как тут можно сделать? Так же возникает вопрос как быть если будет ошибка от сервера, добавлять ли новый else if для проверки статуса ответа и при не успешном ответе отрисовывать кнопку повторного запроса?

Живой пример проекта здесь(на данный момент спиннер не стоит при каких либо изменениях списка)
  • Вопрос задан
  • 1556 просмотров
Подписаться 1 Простой Комментировать
Ответ пользователя tsahk К ответам на вопрос (2)
@tsahk
Мое мнение такое:
1. То что спиннер почти не заметно - это нормально раз сервер быстро ответил и рендер тоже прошел нормально.
2. Насчет "скачков", отрисовки с нуля и вообще выборки фильмов - посмотрите на библиотеку reselect, попробуйте её (если еще не используете), очень помогает во многих подобных (и не только) случаях.
3. Насчет ошибки со стороны сервера - я бы добавил, это удобно, и делается не трудно.
Ответ написан