在蚂蚁设计表中使用多维数组

时间:2019-05-11 06:33:06

标签: arrays reactjs antd

我有一个用例,其中我必须传递一个包含多个数组的数组

  

Array:

       "mainArray": [
         {
         "id": "1",
         "count": 5,
         "strengthEdit": 1,
         "date": "2019-04-07",
         "lastDate": "2018-09-12",
         "array1": [
           {
            "id": "17",
            "innerrArray1": {
              "name": "A"
             },
            "availability": 20,
            "lastEditedCount": 5
            },
           {
            "id": "18",
            "innerrArray1": {
             "name": "B"
            },
          "availability": 5,
          "lastEditedCount": 5
           }
          ],
          "array2": [
           {
            "id": "2",
            "innerrArray2": {
              "name": "a"
             },
            "strength": 80,
            "lastEditedCount": 1
           },
           {
            "id": "3",
            "innerrArray2": {
              "name": "b"
            },
            "strength": 40,
            "lastEditedCount": 1
           }
         ]
       }
      ]

将此数组作为

传递到ant design的表中
<Table dataSource={mainArray} scroll={{ y: 350 }}>

我已经解决了这一问题,方法是制作另一个数组并将其内部数组销毁,但我希望对此采取更清洁的方法。

let consumeArr = [...mainArray.innerArray1,...mainArray.innerArray2]

并将其发送到

<Table dataSource={consumeArr } scroll={{ y: 350 }}>

我想实现的还有其他可能的方式/官方方式

1 个答案:

答案 0 :(得分:0)

根据this  dataSource仅接受any[],没有其他方法可以做到这一点。

因此,唯一的解决方案是以所需格式修改输入数据。
但是,也许在此示例中,内部数组应为array1array2
如果数组的数目不是静态的,则可以使用类似的方法:

const extractArrays = (data) => {
    return Object.values(data).filter(obj => Array.isArray(obj)).flat(1)
}

中部链接:https://jsfiddle.net/n10dxzoy/