javascript - 意外的标记,循环对象时应为 ","

标签 javascript reactjs ecmascript-6

我试图映射对象内的对象集合并访问颜色项,但收到错误意外的标记,预期为“,”。这就是我试图绘制的方式。这是映射对象以从颜色中检索值的正确方法吗?

  {Object.keys(this.state.lists).map((item, i) => 
    (this.state.lists[item].colors).map(item, i) =>
      <li  key={i}>{this.state.lists[item].colors[item]} </li>
  )}

this.state.lists 看起来像这样:

 {{id: 1, colors:["red", "blue"]}, {id: 2, colors:["green", "yellow"]}}

最佳答案

您没有通过callback function到第二个 map 调用,.map(item, i)。因此出现语法错误。它应该类似于 .map((item, i) => ...)

这里有一些清理过的代码,可能可以理解这一点,尽管我还没有测试它是否适用于 React:

const colors = Object.keys(this.state.lists).map(itemKey => {
    return <li key={itemKey}>{this.state.lists[itemKey].colors[0]}</li>
})

当你渲染时,

<ul>{colors}</ul>

关于javascript - 意外的标记,循环对象时应为 ",",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53473316/

相关文章:

javascript - 删除字符串末尾的特定字符(html 元素)

php - 更新 magento 产品页面上的主要产品 url

javascript - 基于国家/地区的简单 jquery 重定向无法正常工作

javascript - 选择 ID 为另一个元素中的属性的元素

javascript - 单击按钮时清除表单

javascript - ReactJS 表单提交 preventdefault 不起作用

javascript - vscode动态es6模块导入报错

javascript - ES6 : callback functions between objects

javascript - Nodejs - 如何在单独的文件中分组和导出多个函数?

javascript - 世博地点权限立即被拒绝 iOS 模拟器