Задать вопрос
coolswood
@coolswood
https://coolswood.github.io

Как правильно организовать общение между компонентами?

Имеется карточка товара. На ней множество мелких компонентов. Например, "Добавить в избранное". Элемент простейший - при клике сердечко должно закраситься, при повторном потерять окрас. Вопрос в организации кода. Я при клике изменяю элемент через state. Если обновлять его в родителе, то перерендеривается весь родительский компонент, поэтому вынес его отдельно, проблема исчезла. Но мне нужно еще делать отправку данных на сервер при клике. По идее тогда мне запрос на сервер тоже делать в этом маленьком компоненте?
Это не сочитается с принципом, что у нас все запросы должны быть в главном умном компоненте, а остальные должны быть простыми, без стейта и запросов. Но если все делать через основной будет куда перерендеров. Как вы поступаете в такой ситуации?
  • Вопрос задан
  • 225 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Можно сделать так:
1. Метод оnClick передается из родительского компонента.
2. state иконки высчитывается по полученным props, но так же меняется по клику, для более комфортного пользовательского опыта.
3. По возвращению ответа от сервера обновляется вся карточка. Так же, обновляется state иконки в computeDerivedState, мало ли была ошибка и товар не попал в избранное.
4. В случае ошибки, левом нижнем углу экрана можно показать всплывающее уведомление. Для этого можно написать action и вызывать его в блоке catch асинхронных действий.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
Wanted. Москва
от 250 000 до 400 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
22 янв. 2025, в 04:08
6000 руб./за проект
21 янв. 2025, в 23:55
20000 руб./за проект
21 янв. 2025, в 23:35
80000 руб./за проект