Я хочу отобразить другой стиль для стандартного элемента, по которому щелкнули, но когда я устанавливаю для activeItem значение idx clicked, react снова перерисовывает весь список. Есть ли способ показать только один активный элемент без повторной визуализации списка
import React, { useState,memo} from "react";
const StocksList=({stocksData})=>{
const [activeItem, setActiveItem] = useState(0);
const Item=({stock,idx})=>{
return (
<li
className={activeItem===idx ? "active-stock-item" : "stock-item" }
onClick={()=>{
setActiveItem(idx);
}}
>
{`${idx+1}. ${stock["Name"]}`}
</li>
)
}
return(
stocksData.map((stock,idx) => <Item key={stock._id} {...{stock,idx}} />)
)
}
export default memo(StocksList)
Обычно это должно быть хорошо, потому что вы уже добавили ключ к каждому элементу, так что при обновлении реакция не будет повторно отображать весь список, а только те, которые содержат изменения