React · Middle · Запитання 51 з 75

Що не так із цим ефектом?

const [filtered, setFiltered] = useState([]);
useEffect(() => {
  setFiltered(items.filter((i) => i.visible));
}, [items]);

Пояснення

Ефект спершу рендерить застарілий filtered, а потім ще раз із новим значенням. const filtered = items.filter(...) (з useMemo, якщо дорого) завжди синхронний.

Де почитати

Помилка в запитанні

React · Middle · запитання 51

Перевірте себе

Пройдіть тест React · Middle: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест