javascript - 为什么不是这些 JSX
问题描述
我有这个嵌套对象:
const data = {
username: "username",
date: "16/01/2021",
time: "10:30",
end: "11:30",
equipment: {
thing1: 0,
thing2: 0,
thing3: 0,
},
cost: 25.00
}
我想为每个键/值对创建一个 li 项,作为使用 JSX 的功能性 React 组件的一部分。
其余代码如下所示:
const entries = Object.entries(data)
return (
<div>
<h4>Please review your booking</h4>
<ul>
{
entries && typeof entries === 'object' ?
entries.map(entry => {
if (typeof entry[1] ==='object') {
let nestedObj = Object.entries(entry[1])
nestedObj.map(entry => {
return <li>{entry[0]}: {entry[1]}</li>)
}
} else {<li>{entry[0]}: {entry[1]}</li>}
})
: <li></li>
}
</ul>
</div>
)
在我看来它应该可以工作。用控制台日志而不是 li 测试了逻辑,这很好。有任何想法吗?
解决方案
您有两个错误:您不是return
来自else
,并且您有一个额外的结束括号。
return (
<div>
<h4>Please review your booking</h4>
<ul>
{
entries && typeof entries === 'object' ?
entries.map(entry => {
if (typeof entry[1] ==='object') {
let nestedObj = Object.entries(entry[1])
nestedObj.map(entry => {
// removed extra paren here
return <li>{entry[0]}: {entry[1]}</li>
})
} else {
// added return here
return <li>{entry[0]}: {entry[1]}</li>
}
})
: <li></li>
}
</ul>
</div>
)
推荐阅读
- java - 如何从前端到后端检索 url 参数并在控制台中打印它们?
- c++ - Ball to Ball Collision resolution Stick together
- apache-spark - 取未来年份的值以计算 pyspark 中的当前年份值
- java - 使用 JDBC、spring 框架和 oracle 时出现 ORA04091-table is mutating 错误
- reactjs - 我们可以防止来自客户端渲染的 React JS 应用程序的点击劫持吗?
- r - 在条形图上添加 pvalue 和奇数比
- spring - 令牌验证在 PCF 中失败,但在本地验证
- php - Laravel 应用程序在新版本 laravel 框架中运行旧版本应用程序后停止工作
- dotnetrdf - 使用 TrinityRDF 连接到 stardog,如果使用的地址不是 localhost,则会引发异常
- sql - Oracle Live SQL - 无效语句错误