Отслеживание реакции useEffect массив зависимостей - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть useEffect, который выбирает пользователей из базы данных, и я хочу изменить представление во внешнем интерфейсе без перезагрузки страницы, например, при удалении пользователя, фильтрации, поиске и т. Д. c. Я использую react-redux в этом проекте, и состояние отслеживания никогда не было легким. Мой текущий useEffect выглядит следующим образом.

// render users with each search query and filters
  useEffect(() => {
    const fetchUsers = () => {
      fetchAllUsers();
    };

    fetchUsers();
  }, [fetchAllUsers, userId, role, searchValue, sortByNameState, sortByJoinDate]);

Я кратко проведу вас через массив зависимостей. userId отслеживает запрос на удаление пользователя, role отслеживает фильтрацию пользователя на основе ролей, searchValue, как следует из названия, отслеживает результат поиска и обновляет список пользователей и так далее, и так далее. Однако, поскольку приложение начинает расти, отслеживание каждого запроса может быть громоздким, и я думал о том, чтобы иметь отдельное состояние, такое как hasChanged, которое я могу отслеживать вместо этого. Так что мой useEffect теперь должен выглядеть примерно так.

// render users with each search query and filters
  useEffect(() => {
    const fetchUsers = () => {
      fetchAllUsers();
    };

    fetchUsers();
  }, [fetchAllUsers, hasChanged]);

Было бы замечательно, если бы кто-то просветил меня о плюсах и минусах, и лучше ли второй подход, чем первый?

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