У меня есть 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]);
Было бы замечательно, если бы кто-то просветил меня о плюсах и минусах, и лучше ли второй подход, чем первый?