Size: a a a

React: русскоязычное сообщество

2020 July 29

РК

Родион Кухтий... in React: русскоязычное сообщество
у нас на проекте suspense, все ок
источник

1

1N54N3 in React: русскоязычное сообщество
Юра Чеботаев
Попробуйте.
Имеете ввиду в эффекте загрузку данных сделать?
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Родион Кухтий
у нас на проекте suspense, все ок
Для загрузки данных?

Реакт стабильный?
источник

РК

Родион Кухтий... in React: русскоязычное сообщество
да, все ок. при том он сильно разгрузил бандл
источник

1

1N54N3 in React: русскоязычное сообщество
Какую загрузку данных вы имеете ввиду? фетч-запросы?
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Нет, там у Suspense своя загрузка.
источник

РК

Родион Кухтий... in React: русскоязычное сообщество
в связи с тем, что у нас конструктор сайтов с инлайн редактированием и вот само инлайн редактирование перенесено в коде сплитинг и работает ок
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Не, это не то.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Suspense может быть использовано не только для React.lazy, но и для загрузки данных.
источник

РК

Родион Кухтий... in React: русскоязычное сообщество
вы про подгрузки мини бандлов по требованию?
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Нет. Про загрузку данных.
источник

1

1N54N3 in React: русскоязычное сообщество
Юра Чеботаев
Тогда будет примерно так с точки зрения экшенов:

const performSearch = (query, genres) => async (dispatch) => {
 dispatch(beginSearch(query, genres))
 try {
   const result = await axios.get('...')
   dispatch(successSearch(query, genres, result))
 } catch (error) {
   dispatch(errorSearch(query, genres, error))
 } finally {
   dispatch(completeSearch(query, genres))
 }
}

const toggleGenre = genreId => ({
  type: 'GENRES/TOGGLE',
  error: false,
  payload: { id: genreId }
})
const toggleGenre = genreId => ({
  type: 'GENRES/TOGGLE',
  error: false,
  payload: { id: genreId }
})

В
редюсере проверяется есть ли жанр в жанрах, если есть удаляет - если нет добавляет?
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
1N54N3
const toggleGenre = genreId => ({
  type: 'GENRES/TOGGLE',
  error: false,
  payload: { id: genreId }
})

В
редюсере проверяется есть ли жанр в жанрах, если есть удаляет - если нет добавляет?
Да.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Крч, раньше было, что если в компоненте бросить ошибку, но вместо объекта типа Error, бросить Promise, то <Suspense> подпишется на этот промис и покажет fallback пока он не загружен и контент, когда загружен.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Тип такого:

const Loadable = () => {
  throw new Promise(...)
}


const App = () => (
 <Suspense fallback="loading...">
   <Loadable />
 </Suspense>
)
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Но сейчас не знаю, как это работает или нет.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Хотели подвезти, но на сайте про это нет ничего.
источник

1

1N54N3 in React: русскоязычное сообщество
Не слишком удобно и не получается пока)
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
А вы не композите редьюсеры?
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Прям так все в кучу?
источник