我在用 React 循环遍历事物以连续多次渲染组件时遇到问题。这是我所拥有的,但它不起作用。一些关于我做错了什么的指示以及更好的方法将不胜感激,谢谢!
const users = [
{
"firstName": "John",
"lastName": "Doe"
}, {
"firstName": "Anna",
"lastName": "Smith"
}, {
"firstName": "Peter",
"lastName": "Jones"
}
];
function Welcome(props) {
return <h1>Hello, {props.firstName} {props.lastName}</h1>;
}
function allUsers(){
return (
<div>
{for(var i=0; i<users.length; i++){
<Welcome firstName={users[i].firstName} lastName={users[i].lastName}/>
}}
</div>
)
}
ReactDOM.render(
allUsers(),
document.getElementById('root')
);
最佳答案
尝试使用.map
而不是 for 循环。它通常在 React 中更容易使用:
const users = [
{
"firstName": "John",
"lastName": "Doe"
}, {
"firstName": "Anna",
"lastName": "Smith"
}, {
"firstName": "Peter",
"lastName": "Jones"
}
];
function Welcome(props) {
return <h1>Hello, {props.firstName} {props.lastName}</h1>;
}
function allUsers(){
return (
<div>
{users.map(function(user) {
return <Welcome key={user.firstName} firstName={user.firstName} lastName={user.lastName}/>
})}
</div>
)
}
ReactDOM.render(
allUsers(),
document.getElementById('View')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="View"></div>
关于javascript - 循环遍历多个项目并渲染每个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41081492/