Получить результат в виде массива в форме Antd - PullRequest
0 голосов
/ 08 ноября 2019

Я хочу, чтобы моя форма отправляла данные о ценах в виде массива, в настоящее время моя форма имеет карту, похожую на

{data.Type && 
    <div>
      {data.Type.map((datamapped)=> 

        <div key={datamapped._id}>
        <p>{datamapped.TypeName}</p>

           <Form.Item>

          {getFieldDecorator(`price.${datamapped._id}.basePrice`)(
            <Input placeholder="Base Price"/>,
          )}

          {getFieldDecorator(`price.${datamapped._id}.higherPrice`)(
            <Input placeholder="Higher Price"/>,
          )}

        </div>
      )}
    </div>
  }

Здесь я отображаю свой Тип здесь и включен,Поля basePrice и upperPrice

результат:

price: 
        { 
           '5dc2913cf9e2372b11db4252': { basePrice: '0', higherPrice: '0' },
           '5dc2a109f9e2372b11db4253': { basePrice: '0', higherPrice: '0' } 
        },

Я хочу, чтобы приведенный выше результат был в формате массива, как это сделать?

Ответы [ 2 ]

1 голос
/ 08 ноября 2019

Попробуйте изменить datamapped._id на [index]

{data.Type && 
    <div>
      {data.Type.map((datamapped, index)=> 

        <div key={datamapped._id}>
        <p>{datamapped.TypeName}</p>

           <Form.Item>

          {getFieldDecorator(`price[${index}].basePrice`)(
            <Input placeholder="Base Price"/>,
          )}

          {getFieldDecorator(`price[${index}].higherPrice`)(
            <Input placeholder="Higher Price"/>,
          )}

        </div>
      )}
    </div>
  }
0 голосов
/ 08 ноября 2019

Вы можете попробовать это:

var json = {
  price: {
    "5dc2913cf9e2372b11db4252": { basePrice: "0", higherPrice: "0" },
    "5dc2a109f9e2372b11db4253": { basePrice: "0", higherPrice: "0" }
  }
};

json.price = Object.entries(json.price);
console.log(json);
...