Их надо вывести и по клику на кнопку переключать фон у активного. Если иду "в лоб", то на каждую смену активного элемента происходит полный рендер массива, что явно не tue. Как при смене активного элемента перерисовывать только два (предыдущий и новый) ? Уже переписал с useMemo, но все равно на каждый клик идет обход всего массива. Код тут
https://codesandbox.io/s/react-usememo-usestate-ooyz2
ну и конечно функция устанавливающая "активность" должна быть useCallback, иначе при передаче её через пропсы ссылка на функцию будет меняться и компоненты будут перерисовываться
Обсуждают сегодня