在 React 中,您将使用某种类型的循环来渲染列表。
JavaScriptmap()
数组方法通常是首选方法。
如果您需要复习一下map()
方法,查看ES6部分。
让我们渲染车库中的所有汽车:
function Car(props) {
return <li>I am a { props.brand }</li>;
}
function Garage() {
const cars = ['Ford', 'BMW', 'Audi'];
return (
<>
<h1>Who lives in my garage?</h1>
<ul>
{cars.map((car) => <Car brand={car} />)}
</ul>
</>
);
}
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Garage />);
当您在您的create-react-app
,它会起作用,但您会收到一条警告,指出没有为列表项提供"key"。
键允许 React 跟踪元素。这样,如果更新或删除某个项目,则只会重新呈现该项目而不是整个列表。
密钥对于每个兄弟姐妹来说必须是唯一的。但它们可以在全球范围内复制。
通常,密钥应该是分配给每个项目的唯一 ID。作为最后的手段,您可以使用数组索引作为键。
让我们重构之前的示例以包含键:
function Car(props) {
return <li>I am a { props.brand }</li>;
}
function Garage() {
const cars = [
{id: 1, brand: 'Ford'},
{id: 2, brand: 'BMW'},
{id: 3, brand: 'Audi'}
];
return (
<>
<h1>Who lives in my garage?</h1>
<ul>
{cars.map((car) => <Car key={car.id} brand={car.brand} />)}
</ul>
</>
);
}
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Garage />);
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!