Задать вопрос
Kentavr16
@Kentavr16
long cold winter

Как вызвать ререндер несвязанного компонента?

Доброго времени суток. Вот схема моего пет-приложения:

63a96d287a4f7406870820.png

Собственно проблему попытался отобразить на схеме. Есть два несвязанных компонента. Само приложение маленькое, организовывать хранение стейта с помощью условного redux не вижу смысла. Проблема в том, что нужно запустить ререндер компонента Б, когда я создаю новую задачу в компоненте А. Пока додумался только до создания в родительском компоненте App стейта, который изменяю при успешном создании новой записи компонентом А, и передаю в компонент Б для его ререндера. Это не похоже на лучшую практику. Возможно есть предложения по реорганизации приложения? Или способ оптимальнее запустить ререндер компонента б?
  • Вопрос задан
  • 61 просмотр
Подписаться 1 Простой 2 комментария
Решения вопроса 2
Alexandroppolus
@Alexandroppolus
кодир
Само приложение маленькое, организовывать хранение стейта с помощью условного redux не вижу смысла

ну тогда просто храни в контексте
Ответ написан
Комментировать
Kwinston
@Kwinston
Fullstack Web3 Developer
Ререндер компоненты происходит в трех случаях:
1) Изменения props
2) Изменения state
3) Вызов метода forceUpdate (доступно только в классовых компонентах)

Твое решение вполне адекватно:
В родительской компоненте A и B компонент сделать состояние data с задачами и создать функцию к примеру fetchData в которой при вызове получать задачи с сервера. Вызывать fetchData в useEffect для первичной загрузки данных, затем прокидывать data в компоненту B для отображения данных. В компоненту A же прокинуть функцию fetchData и вызывать ее в случае успешного создания новой задачи для обновления данных
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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