Junior #jsx#list#conditional-rendering
Conditional rendering và render danh sách trong React: các cách và lỗi hay gặp?
⚡ Trả lời nhanh
Dùng `if`/early return, toán tử ba ngôi hoặc `&&` để render có điều kiện; dùng `map` kèm `key` ổn định cho danh sách. Cẩn thận `0 && <X />` sẽ render ra số 0, hãy ép về boolean hoặc dùng ba ngôi.
function Inbox({ mails }) {
if (!mails) return <Spinner />; // early return
return (
<>
{mails.length > 0 ? ( // ba ngôi
<ul>{mails.map((m) => <li key={m.id}>{m.title}</li>)}</ul>
) : (
<p>Hộp thư trống</p>
)}
{mails.length > 0 && <Footer />} // an toàn vì là boolean
</>
);
}
null,undefined,true,falsekhông render gì; số0và chuỗi rỗng thì có (0hiện ra).- Mỗi phần tử trong list cần
keyduy nhất và ổn định, đặt ở phần tử ngoài cùng củamap. - Lọc/sắp xếp nên làm trên bản sao (
[...arr].sort()), không mutate props/state.