Я пытаюсь пройти курс реакции на udemy, но использую хуки вместо классов и состояний, как показывает инструктор. Это простое приложение, в котором я загружаю случайную информацию о пользователе и изображения и показываю их с помощью флеш-карт.

Затем мне нужно иметь возможность искать / фильтровать пользователей. Мне удалось заставить это работать, используя два разных useEffects, но я хотел бы знать, правильный ли это способ решить эту проблему. А также, если я могу получить какие-либо советы о том, как улучшить мой текущий код.

Проект на codeandbox

0
Burton 18 Апр 2020 в 11:49

1 ответ

Лучший ответ

Ничего страшного. Однако вам не нужно использовать второй useEffect. вы можете вычислить фильтр прямо в теле функции. Если вы хотите кэшировать результаты, вы можете использовать хук useMemo, но здесь это не нужно.

В основном я бы сделал следующее:

const filter = users && users.length ? users.filter((person) =>
        person.name.toLowerCase().includes(searchField.toLowerCase())
      ); || []
1
Tom Slutsky 18 Апр 2020 в 09:38