Size: a a a

React — русскоговорящее сообщество

2021 June 09

AD

Alexandr Dikin in React — русскоговорящее сообщество
массив товаров
источник

АК

Александр Костюченко... in React — русскоговорящее сообщество
Значит у вас есть стейт состоящий из массива, состояния загрузки, ошибки (к примеру)

В эффекте (когда нужно запрос отправить делаете следующее:

1. Меняете стейт состояния загрузки на true

2. Выполняете запрос (fetch)
3. Обрабатываете результат если нкжно

4. Меняете стейт состояния загрузки на false

5. Делаете return того что получили с сервера

На пунктах 1 и 4 будет новый рендер

В самом компоненте просто пишете
Что если состояние загрузки тру, то рисуем спиннер, иначе список товаров


Какие моменты нужно объяснить подробнее?
источник

АК

Александр Костюченко... in React — русскоговорящее сообщество
Ну и если покажете код, конечно помочь будет легче (обычно)
источник

AD

Alexandr Dikin in React — русскоговорящее сообщество
Если нужен рендер, то тоже могу отправить
источник

AD

Alexandr Dikin in React — русскоговорящее сообщество
Та самая функция
источник

AD

Alexandr Dikin in React — русскоговорящее сообщество
Я предполагаю, что отрисовка долго происходит из-за множества изображений, ибо он их все подгружает
источник

AD

Alexandr Dikin in React — русскоговорящее сообщество
Потому что один запрос отрисовывает минимум 60 изображений
источник

АК

Александр Костюченко... in React — русскоговорящее сообщество
А почему вы сразу data не рендерите через мапу, а через стор что-то вызываете?
Вероятно, это и вызывает задержку
источник

АК

Александр Костюченко... in React — русскоговорящее сообщество
Кстати через debug можете точки останова сделать и увидите как раз
источник

АК

Александр Костюченко... in React — русскоговорящее сообщество
Самое быстрое и очень пахнущее - там где запрос уберите отключение спиннера и перенесите его в getItems, либо дополнительно там сделайте ещё раз включение и отключение
источник

AD

Alexandr Dikin in React — русскоговорящее сообщество
Мне казалось, что раз есть централизованное хранилище, то лучше брать оттуда, разве нет?) Изменил, и кажется, действительно стало чуть быстрее отрисовываться
источник

OM

Oleh Myhal in React — русскоговорящее сообщество
Я уже c этим кодом обращался - но теперь другой вопрос. Все рендерит хорошо, фильтр работает, но теперь следующая задача - сортировка по столбцам. Что у меня пока что есть - по клику по столбцам в стор записывается, по какому столбцу надо сортировать, точнее для соответсвующего столбца устанавливается значения тру. Идея следующая - будет проверяться у какого столбца стоит тру, и делать соответсвующую сортировку. Но пока не получается реализовать, да и разветвление получается громоздким. Как это лучше решить?
источник

АК

Александр Костюченко... in React — русскоговорящее сообщество
Скажу честно наделал такого, но я бы сделал так:
Создал на каждый столбец по функции (эвент) и повешал её на онКлик столбца, функция был просто перезаписывала стейт отсортированной копией
источник

АК

Александр Костюченко... in React — русскоговорящее сообщество
Ну либо , одну функцию, но передавать в нее имя столбца
источник

АК

Александр Костюченко... in React — русскоговорящее сообщество
Никаких тру не нужно тогда, просто по клику меняете стейт, изначально, если с сервера приходит без сортировки, можно в том эффекте вызвать этот ивент самому
источник

AB

Artyom Burkan in React — русскоговорящее сообщество
Скажи как называется расширение, которое дописывает ‘fn, url’ и т.д.
источник

АК

Александр Костюченко... in React — русскоговорящее сообщество
Это ide WebStorm, а не расширение, чуть ускоряет разработку т.к не надо наводить на функцию чтобы посмотреть что за аргумент следующий идёт
источник

AZ

Alexandr Zharkov in React — русскоговорящее сообщество
стандартное шторма
источник

AB

Artyom Burkan in React — русскоговорящее сообщество
Как называется эта опция в IDE?
источник

АК

Александр Костюченко... in React — русскоговорящее сообщество
Она встроенная, название не подскажу
источник