React final form split field values

Sep 03 2020

Saya memiliki aplikasi react dan redux dengan formulir terakhir react di mana saya memiliki bidang bernama 'mobil' yang merupakan acara pilih dan mata-mata untuk mengirimkan jika datanya kotor. Semua bagus dengan nilai dan barang tetapi saya perlu membaginya menjadi beberapa jenis sehingga formulir mengembalikan sesuatu seperti coupe: ['BMW'], sedan: ['Audi']tidak hanya nama bidang dengan nilai seperticars: ['BMW', 'Audi']

{
  type: "Coupe"
  value: "BMW"   
},
{
  type: "Sedan"
  value: "Audi"   
}

Mungkin ada yang punya saran bagaimana mengubah itu dan ketika di dalam bereaksi bentuk akhir? atau haruskah itu dilakukan di dalam peredam atau saga?

Jawaban

1 YevgenGorbunkov Sep 03 2020 at 03:58

Dengan asumsi Anda mendapatkan data formulir Anda sebagai

[
    {
        type: "Coupe",
        value: "BMW"
    }, {
        type: "Sedan",
        value: "Audi"
    }
]

dan Anda perlu mengubah typenilai menjadi nama kunci, sehingga Anda mengerti

[{ coupe: 'BMW'}, {sedan: 'Audi'}]

Anda dapat menggunakan Array.prototype.map()(di dalam penangan pengiriman, atau peredam, atau di mana pun itu bekerja lebih baik untuk Anda):

const formData = [{type:"Coupe",value:"BMW"},{type:"Sedan",value:"Audi"}],

      remappedData = formData.map(({type,value}) => 
        ({[type.toLowerCase()]: value}))
      
console.log(remappedData)
.as-console-wrapper{min-height:100%;}