Предотвращение повторного рендеринга детей, когда родитель запускает setState - PullRequest
0 голосов
/ 13 февраля 2019

l Всем привет, вот в чем проблема.

У нас есть компонент сетки с включенной фильтрацией.Когда применяется фильтрация, если существует определенная подпорка обратного вызова, она вызывается с отфильтрованными данными в качестве аргумента.

Проблема заключается в следующем.Если указанная сетка данных обернута родительским компонентом, а родительский компонент сохраняет отфильтрованные данные в своем состоянии, это вызывает перерисовку родительского компонента, но также и сетку данных.Однако, когда сетка данных выполняет рендеринг, он запускает свою логику фильтрации, что приводит к запуску обратного вызова (то есть setState() call).

Итак, чтобы избежать цикла, я ввел переменную в класс родительского компонента и сохранилданные там, но мне они не кажутся такими хорошими.

Другой вариант - избыточный, просто добавьте новое действие и отправьте его при запуске фильтрации.

Есть другие идеи?

1 Ответ

0 голосов
/ 13 февраля 2019

Поскольку вы также спрашиваете о других идеях, могу я предложить React-хуки.Они допускают более детальное управление, такое как множественные состояния, редукторы , запоминаемые обратные вызовы , эффекты, которые вызываются только при изменении входных данных и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...