gpt4 book ai didi

javascript - for in 循环在 jsx 中得到了意外的标记

转载 作者:行者123 更新时间:2023-11-30 15:22:11 25 4
gpt4 key购买 nike

const ProfileDetail = ({user}) => (
<Card className="container">
{for (let key in user) {
if (user.hasOwnProperty(key)) {
<li>{key}: {user[key]}</li>
}
}}
</Card>
);

我不能在 jxs 中做这样的循环吗?不能在渲染方法之外进行,因为这是一个无状态组件。

上面的代码有什么问题?

最佳答案

{...} 的内容 must be an expression . for 是一个语句

在这种情况下,您可以使用 Object.keys 在单个最外层表达式中完成所有操作(它还会为您检查“自己的”属性):

const ProfileDetail = ({user}) => (
<Card className="container">
{Object.keys(user).map(key => <li>{key}: {user[key]}</li>)}
</Card>
);

但是,如果您更喜欢 for 循环,只需将函数做成一个冗长的箭头而不是简洁的箭头,将项目构建在一个数组中,然后在 JSX 中使用它们:

const ProfileDetail = ({user}) => {
const items = [];
for (let key in user) {
if (user.hasOwnProperty(key)) {
items.push(<li>{key}: {user[key]}</li>);
}
}
return <Card className="container">{items}</Card>;
};

关于javascript - for in 循环在 jsx 中得到了意外的标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43559409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com