Saya mengalami masalah di aplikasi reaksi saya dengan fungsi handlesubmit seperti yang dijelaskan di bawah ini. Tinjauan singkat: Untuk menangani karyawan dan proyek untuk aksios, saya harus memasukkan ...

1
Tan 5 April 2021, 20:17

1 menjawab

Jawaban Terbaik

Melihat parameter posting Anda.

requestId: values.requestId,
projectId: values.projectId,
employeeSets: deriveEmployeeArray(values.employeeSets[0].employeeSetId),
projects: deriveProjectArray(values.projects[0].projectId),

Ada 3 rekomendasi.

1 Jangan gunakan array, gunakan objek biasa. misalnya

value = { requestId: 123, projectId: 123. employeeSets: 1234, projects: 'some project' }

2 Jika Anda benar-benar perlu menggunakan array, maka cukup periksa id secara langsung.

if (values.employeeSets[0].employeeSetId) {
   ... do something
} 

3 Jika Anda ingin mengembalikan array atau alternatifnya, Anda juga dapat melakukan sesuatu seperti ini.

requestId: values.requestId,
projectId: values.projectId,
employeeSets: deriveEmployeeArray(values.employeeSets[0]?.employeeSetId) || null,
projects: deriveProjectArray(values.projects[0]?.projectId) || null,

Idealnya, semua pernyataan IF-lain ini tidak perlu diperlukan dalam fungsi onsubmit, dan harus diperiksa / didefinisikan dalam DeriveemployeArray dan DeriveProjectArray (kode pembersih).

function deriveEmployeeArray(employee) {
  
    return Array.isArray(employee) ? employee :  ''
     // if not array, then just return empty string.
     // If employee could be a string OR an array OR empty, u can also do 
     // return employee || ''
}
0
Someone Special 5 April 2021, 17:36