TypeError: Cannot read properties of undefined (reading ‘namespace‘)

项目场景:

背景:

Java 项目中使用 activi 流程引擎, 创建一个带有排他网关的 申请审核流程,
创建之后 查看 流程图出现 如下所示的 错误信息。
前端页面 不显示 任何 流程图信息。
TypeError: Cannot read properties of undefined (reading ‘namespace‘)_第1张图片


问题描述

问题:

例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据
APP 中接收数据代码:

TypeError: Cannot read properties of undefined (reading 'namespace')
    at classDef.construct (oryx.debug.js:10912:34)
    at new classDef (oryx.debug.js:1747:54)
    at app.js:111:45
    at angular.min.js:67:279
    at B (angular.min.js:94:5)
    at B (angular.min.js:94:5)
    at angular.min.js:95:173
    at h.$eval (angular.min.js:103:456)
    at h.$digest (angular.min.js:101:218)
    at h.$apply (angular.min.js:104:264)

TypeError: Cannot read properties of undefined (reading ‘namespace‘)_第2张图片


原因分析:

分析:

情况一:
出现该错误的原因是因为你花括号中的某些属性未定义。极大可能是因为你写错了属性名称

情况二:
异步请求获取数据时,由于数据时异步获取的,所以一开始是没有该数据属性,这种情况下也会报这种错误。比如说我这里有一个数据tableData,初始值为一个空对象。我们在使用{{tableData.detail}}是不会报错的,但如果是{{tableData.detail.name}}这样就会报错了,这是为什么呢?
因为,tableData.detail已经是一个undefined了,你undefined.name就肯定会报错了。
所以在初始化时,detail属性赋值为空对象就行了。

情况三:

后端返回给你的数据没有这个属性 或者 返回的有的有数据有的是null

这个时候需要先查一下,可以加v-if进行判断

情况四:

使用$nextTick,刷新表格的时候,表格未自定义属性,或自定义属性引用错了


解决方案:

解决方案:

考虑:
数据传递参数 赋值 在 created()中使用,不要在 mounted()中使用,这样有可能会导致 undefined 的情况。
因为 生命周期因素传到的参数,是在加载后出现的。
放在 created() 中 可以有效解决。

查看 使用的字段是否进行定义,书写书否一致。

项目环境不同,所以导致问题的原因可能不同,我们需要根据考虑到几种情况一一进行排查。

你可能感兴趣的:(javascript,java)