vue.runtime.esm.js?2b0e:1888 TypeError: Cannot set properties of null (setting ‘tableData‘)

发布于:2023-01-02 ⋅ 阅读:(250) ⋅ 点赞:(0)

​最近写项目的时候遇到一个问题,后端需要我写一个json对象传过去,但是当我想获取数据或者提交时 ,提示我报错[Vue warn]: Error in v-on handler: "TypeError: Cannot set properties of null (setting ‘tableData’)"和TypeError: Cannot set properties of null (setting ‘tableData’)
在这里插入图片描述
data中已声明对象,问什么还是null?

报错原因

1、后台传的数据为null
2、前端提交给后端的数据中,字段已在data声明,但是后端传数据的时候返的为null

解决办法

针对问题一

字段初始化有值时
就是在接受后端传的字段中添加一个判断,如果设置的字段初始化有值可以进行if-else判断,如果直接进行或运算,提交的时候没有数据(undefined)

tableData:[
        {
                type: "xxxx",
                grade: "",
        }
      ],
if(response.data.value.tableData){
   this.tableData = response.data.value.tableData;
 }else{
   this.tableData = this.tableData;
 }

字段初始化为空(undefined)
如果设置的本就为空,可以进行||运算

this.imageSrc = (response.data.value || this ).imageUrl;

针对问题二

前端要提交给后端某个字段,但是当时后台传的给前端的数据为null,所以在接收字段的时候依旧进行一个判断,不然在提交时进行判断太过麻烦

 this.ironform.value = response.data.value || {};

问题也就能迎刃而解了

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到