javascript - 在 React.JS 中将映射函数嵌套在映射函数中

标签 javascript json reactjs map-function

我正在尝试嵌套一个从 JSON 文件中提取数据的 map 函数。我的外部 map 函数执行良好。内部映射函数似乎抛出错误,说它不是“item.map 不是函数”,我想知道这是否只是一个语法错误或什么。下面是我的 Client.js 文件:

import React, { Component } from "react";
import { Link } from "react-router-dom";
import ClientList from "../Clients/ClientList";
import ClientListData from "../Clients/ClientListData";

class Client extends Component {
render() {
    return (
    <div>
        {ClientListData.map(function(item, i) {
          return (
            <div className="column-wrap list half-green" key={i}>
              <div className="column half title">
                <h3>{item.bannerText}</h3>
              </div>    
              <div className="column half details">
              {item.map(function(innerItem, i) {
                return (   
                  <ClientList imgClass={innerItem.imgClass} imgSrc={innerItem.imgSrc} imgAlt={innerItem.imgAlt} imgText={innerItem.imgText} year={innerItem.year} /> 
                );
              })}
              </div>   
            </div>
            );
        })}
    </div>
    )

}
}
export default Client;

我有一个名为 ClientList.js 的文件,我将其导入到 Client.js 中:

 import React, { Component } from "react";
 import { Link } from "react-router-dom";
 import ClientListData from "../Clients/ClientListData";

 class ClientList extends Component {
 render() {
     return (
          <div className="client-details">
            <div className="logo-wrap">
              <img className={this.props.imgClass} src={this.props.imgSrc} alt={this.props.imgAlt} />
            </div>
            <span className="client">
              {this.props.imgText}
            </span>
            <ul>
              <li>{this.props.year}</li>
            </ul>
          </div>
     );
 }
 }
 export default ClientList;

这是我的 JSON 文件,名为 ClientListData.json:

[
  {
"bannerText": "Over $10 Million",
"theClients" :[
     {
      "imgClass": "logo pcb",
      "imgSrc": "logos/PCB@2x.png",
      "imgAlt": "Panama City Beach",
      "imgText": "Panama City Beach",
      "year": "2016 | AOR"
    }
 ]
  },

  {
"bannerText": "$5 - 10 Million",
"theClients" :[
       {
      "imgClass": "logo pcb",
      "imgSrc": "logos/PCB@2x.png",
      "imgAlt": "Panama City Beach",
      "imgText": "Panama City Beach",
      "year": "2016 | AOR"
    },
     {
      "imgClass": "logo pcb",
      "imgSrc": "logos/PCB@2x.png",
      "imgAlt": "Panama City Beach",
      "imgText": "Panama City Beach",
      "year": "2016 | AOR"
    },
     {
      "imgClass": "logo pcb",
      "imgSrc": "logos/PCB@2x.png",
      "imgAlt": "Panama City Beach",
      "imgText": "Panama City Beach",
      "year": "2016 | AOR"
    }
]
}
]

最佳答案

应该是:

item.theClients.map(function(innerItem, i) {

您缺少 theClients key 。

关于javascript - 在 React.JS 中将映射函数嵌套在映射函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55289174/

相关文章:

mysql - Highcharts Mysql Json 数组 PHP

reactjs - Next js 应用程序(在 Docker 容器内运行)无法加载位于公共(public)目录中的静态文件图像

javascript - 从一个 HTML 页面中取出一个 <div> 并显示在另一个页面的弹出窗口中?

javascript - knockout : How to select an item by property name from an observableArray of objects

javascript - 如何养育 child ul?

javascript - Ant Design 范围选择器禁用日期数组

reactjs - 在 React 类中声明箭头函数时是否应该使用 const

javascript - Windows Media Player 是否有文档化的 JavaScript API?

json - 来自 Powershell 的 Mongodb Find() 查询

javascript - Slack 消息负载的 JSON 输出有什么问题?