javascript - .map 不是 javascript 中的函数
问题描述
我一直在尝试在 javascript 中的数组上使用 map 方法,这是我一直在使用的数组的快照。
[
{"name":"supplier","elements":["beta","gama","alpha"]},
{"name":"commodity","elements":[]},
{"name":"year","elements":[]}
]
这是我对地图的使用
function renderTable(entityMap){
return entityMap.map((lookup,index)=>{
console.log(lookup)
const {name, elements} = lookup
return (
<tr key={index}>
<td>{name}</td>
<td>{elements}</td>
</tr>
)
})
}
而且我知道我使用的是正确的数组,因为当我这样做时
console.log(entityMap[1])
它返回{name: "commodity", elements: Array(0)}
更新
我在 render() 中调用 renderTable 函数
class LookupTable extends Component {
render() {
const {
close,
saveAndClose,
entityNames,
entityModal,
entityMap
} = this.props
console.log(entityMap[1])
return (
<Modal
title='Add Lookups for entities'
visible={Boolean(entityModal)}
onOk={() => saveAndClose()}
onCancel={() => close()}
okText='save'
>
<div>
<table>
<tbody>
{renderTable({entityMap})}
</tbody>
</table>
</div>
</Modal>
)
}
}
更新 2
Array.isArray(entityMap) 返回真
解决方案
您需要删除调用 renderTable 的大括号,因为 map 方法适用于数组而不适用于对象。
我在需要删除花括号的地方添加了代码,希望对您有所帮助
<tbody>
{renderTable(entityMap)}
</tbody>
推荐阅读
- python - XML 使用外部 DTD 进行验证 - XML 解析器是 Python (lxml),此解析器无法从 HTTPS 端加载外部 DTD
- excel - 如何将多行的同一行中的值相加(Excel)
- jquery-ui - 如何在故事书中安装 Jquery-ui?
- django - RESTful API 按过滤器列表过滤数据
- oracle-apex - Oracle Apex 问题跟踪器系统-演示/示例项目
- sql - 带时间添加计算的条件选择
- junit5 - Selenium Jupiter 中多浏览器测试执行的标准方法
- asp.net-mvc - 使特定值需要 @Html.TextBoxFor
- javascript - React 组件 - 在未渲染时也继续工作
- sapui5 - 执行触发器时 SAP DBTech JDBC 的问题