无法添加属性identity:该对象无法扩展
P粉338969567
P粉338969567 2023-09-19 13:41:04
[React讨论组]

当我尝试准备我的POST请求体时,遇到了一个简单的TypeError。

这是我的handleSubmit函数:

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')));
  };

我看到了许多类似的问题,但没有找到正确的答案。 你有什么想法吗? 谢谢

P粉338969567
P粉338969567

全部回复(1)
P粉052724364

也许你应该以不同的方式声明prepareBody对象?

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

}

并且不要忘记检查对象中的属性:

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

或者使用解构:

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

} = values || {};

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号