javascript - 如何在react Js中使用map实现嵌套循环

标签 javascript reactjs

我知道有很多线程已经回答了有关在 React js 中使用映射的嵌套循环问题,但我很困惑如何在代码中实现它。我尝试了几次,但出现错误,

这是我尝试过的一些主题,但我似乎无法实现它:

  1. react-create-nested-components-with-loops

  2. how-to-have-nested-loops-with-map-in-jsx

  3. react-map-over-nested-array-of-objects

这是我想要获取的 Json:

"costs": [
          {
            "service": "CTC",
            "description": "JNE City Courier",
            "cost": [
              {
                "value": 234000,
                "etd": "1-2",
                "note": ""
              }
            ]
          },
          {
            "service": "CTCYES",
            "description": "JNE City Courier",
            "cost": [
              {
                "value": 468000,
                "etd": "1-1",
                "note": ""
              }
            ]
          }
        ]

我想要的是从这个 JSON 示例中获取值,但仍然没有运气

这是我想要循环的组件:

<MDBDropdown className="select-type">
 <MDBDropdownToggle caret className="select-btn">
  Choose Your Courier Service
 </MDBDropdownToggle>
 <MDBDropdownMenu basic onClick={this.serviceData}>
  {shipmentFees != null ? shipmentFees.map(
    shipmentFee => (
     <MDBDropdownItem key={shipmentFee.cost.service} name={shipmentFee.cost.description + "," + shipmentFee.cost.etd} value={shipmentFee.cost.value}>
      {shipmentFee.cost.description}, {shipmentFee.cost.etd} Days
     </MDBDropdownItem>
    )
   )
  :
    <MDBDropdownItem value="-">There is no service</MDBDropdownItem>
  }
 </MDBDropdownMenu>
</MDBDropdown>

从引用号3开始,我尝试了这个解决方案,但我得到了意外的 token ,预期为“,”

<MDBDropdown className="select-type">
 <MDBDropdownToggle caret className="select-btn">
  Choose Your Courier Service
 </MDBDropdownToggle>
 <MDBDropdownMenu basic onClick={this.serviceData}>
  {shipmentFees != null ? shipmentFees.map(
   shipmentFee => (
    {
     shipmentFee.cost.map(
      cost => (
       <MDBDropdownItem key={cost.service} name={cost.description + "," + cost.etd} value={cost.value}>
        {cost.description}, {cost.etd} Days
       </MDBDropdownItem>
      )
     )}
    )
   )
   :
   <MDBDropdownItem value="-">There is no service</MDBDropdownItem>
  }
 </MDBDropdownMenu>
</MDBDropdown>

有人可以帮我解决这个问题吗?

最佳答案

我只是按照你的第二段代码

1) 我认为你的 shipmentFee.cost.map( 应该是 shipmentFee.costs.map(

2) 下一行cost =>(此处cost将为您提供service描述成本[]

3) cost[] 因为它是一个数组,所以您必须执行另一个映射/循环来提取valueetdnote。我认为这个是您的期望值

关于javascript - 如何在react Js中使用map实现嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59117405/

相关文章:

javascript - 可以同时使用 Dojo.Build 和 CDN 吗?

javascript - 用javascript获取字符串的路径?

javascript - 焦点样式在 React 组件中无法正常工作?

javascript - React CPU 使用率(快速更新)

javascript - $.getJSON执行问题: json to array is populated but not used

javascript - 找到 div 中的第一个 img 并在其下方放置一个新 div

javascript - 从数据库获取数据后,setState 在 native react 中不起作用

css - 如何使用 TailwindCSS 禁用环形阴影?

javascript - at 符号 (@) 在 ES6 javascript 中的作用是什么? (ECMAScript 2015)

javascript - onWheel 事件 - 如何立即触发方法,而不是在用户停止滚动后触发