Stop wasteful list re-renders

Performance — Intermediate React challenge.

A list of items re-renders every row whenever ANYTHING in the parent changes — even an unrelated counter. Fix it using React.memo and useCallback so only the rows whose own props actually changed re-render.

Requirements

Signature

function ListItem({ item, isSelected, onSelect, onRender }): JSX.Element
function ItemList({ items, onItemRender }): JSX.Element

Example

<ItemList items={[{ id: 1, name: "Apple" }, { id: 2, name: "Banana" }]} />
// clicking "Refresh" → no row re-renders
// selecting item 2 → only item 2 (and the previously selected item, if any) re-render

Constraints

🏷️ Get 20% OFF on Yearly & Lifetime plans — use code 🏷️ Get 20% OFF on Yearly & Lifetime plans — use code 🏷️ Get 20% OFF on Yearly & Lifetime plans — use code 🏷️ Get 20% OFF on Yearly & Lifetime plans — use code 🏷️ Get 20% OFF on Yearly & Lifetime plans — use code 🏷️ Get 20% OFF on Yearly & Lifetime plans — use code
Loading workspace…