Tidak dapat menambah identiti harta: Objek tidak boleh dipanjangkan
P粉338969567
P粉338969567 2023-09-19 13:41:04
0
2
498

Saya menghadapi TypeError yang mudah semasa cuba menyediakan badan permintaan POST saya.

Ini penangan sayaSubmit fungsi:

const handleSubmit = (values: any, formikHelpers: FormikHelpers) => { const prepareBody = { ...values.customerCase}; if (type === '1') { console.log(prepareBody); prepareBody.case.identity= {}; // 即使我删除这一行也会出错 prepareBody.case.identity.title = values.customerCase.customer.contact.title; prepareBody.case.identity.firstName = values.customerCase.customer.contact.firstName; prepareBody.case.identity.lastName = values.customerCase.customer.contact.lastName ; prepareBody.case.type = type; } PostCustomer({ reference: props.reference, body: prepareBody, }) .unwrap() .then(() => { formikHelpers.resetForm(); history.push('/success'); }) .catch(() => alertToasts('error', t('toast.error'))); };

Saya melihat banyak soalan yang serupa tetapi tidak menemui jawapan yang betul. Adakah anda mempunyai sebarang idea? Terima kasih

P粉338969567
P粉338969567

membalas semua (2)
P粉052724364

Mungkin anda patut mengisytiharkan objek prepareBody secara berbeza?

const prepareBody ={ case: { identity: { title: null, firstName: null, lastName: null }, type: null }, ...values.customerCase

}

Dan jangan lupa untuk menyemak sifat dalam objek:

values?.customerCase?.customer?.contact?.title

Atau gunakan penstrukturan:

const { customerCase: { customer: { contact: { title, firstName, lastName } } }

} = nilai || {};

    P粉436410586

    Apabila anda bermula dariformik库中获取的表单值是不可扩展的。当你执行const prepareBody = { ...values.customerCase};, anda mencipta objek yang mengandungi salinan semuanilai asal, tetapi rujukan kepada nilai bukan primitif (seperti objek) ditambah, itulah sebabnya anda tidak boleh memanjangkannya.

    Untuk dapat mengubah suainya, anda perlu menciptasalinan mendalamdaripadavalues.customerCase. Kini, standard Javascript menyediakan kaedahstructuredCloneuntuk membantu anda mencapai matlamat ini.

      Muat turun terkini
      Lagi>
      kesan web
      Kod sumber laman web
      Bahan laman web
      Templat hujung hadapan
      Tentang kita Penafian Sitemap
      Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!