Select 循环反应 js 与对象数组

Select loop react js with array of objects

我有一个对象数组

let arr= [0: {received: "Return Received", approved: "Approved", rejected: "Rejected"} 1: {authorized: "Authorized", received: "Return Received"}}

我想将数据推送到 <option></options>

在循环中执行时,第一个 set 应该设置一个选项集,例如 first set create 和 option 以及第二个 next 选项

例如:

<Select><option key="received" >Return Received</options<option key="approved">Approved</options><option key="rejected">Rejected</options><Select>

<Select><option key="authorized" >Authorized</options><option key="received">ReturnReceived</options><Select>

我尝试了下面的代码,但我在一个选项中得到了所有结果

const listItems = Object.entries(arr).map(([key, value]) => (
        console.log(Object.keys(arr[0]).length),
        Object.entries(value).map(([name, data]) => (
            <option key={name}>{name}</option>
        ) 
        )
    )
    );

<Select native={true}>{listItems}<Select>

您应该为每个密钥创建一个 <select>,但您总共只创建了一个。尝试这样的事情:

  const obj = {
    0: {
      received: "Return Received",
      approved: "Approved",
      rejected: "Rejected"
    },
    1: {
      authorized: "Authorized",
      received: "Return Received"
    }
  };

  const listItems = Object.entries(obj).map(([key, value]) => (
    <select key={key}>
      {Object.entries(value).map(([name, data]) => (
        <option key={name}>{name}</option>
      ))}
    </select>
  ));

这是一个沙盒:https://codesandbox.io/s/bitter-feather-emizf

你调用 arr 一个数组并且你说你正在 push 将数据写入其中,但随后使用 Object.entries 并且看起来像它的对象语法。无论如何,我假设它是上面的一个对象。以防万一你卡在数组方面,我也添加了一个数组结构:

  const arr = [
    {
      received: "Return Received",
      approved: "Approved",
      rejected: "Rejected"
    },
    {
      authorized: "Authorized",
      received: "Return Received"
    }
  ];

  const arrList = arr.map((value, index) => (
    <select key={index}>
      {Object.entries(value).map(([name, data]) => (
        <option key={name}>{name}</option>
      ))}
    </select>
  ));