根据我的客户端错误日志,我的ReactJS应用程序有时会抛出以下异常。
TypeError: Unable to get property 'remove' of undefined or null reference
at M.willDeleteListener (eval code:17:25544)
at v.deleteAllListeners (eval code:1:25843)
at m.Mixin.unmountComponent (eval code:16:15442)
at i.unmountComponent (eval code:15:5262)
at unmountChildren (eval code:17:3368)
at _.Mixin.unmountChildren (eval code:17:2153)
at m.Mixin.unmountComponent (eval code:16:15442)
at i.unmountComponent (eval code:15:5262)
at _.unmountComponent (eval code:15:16416)
at i.unmountComponent (eval code:15:5262)
我无法复制(无论是在本地还是在制作中)。
可能导致此问题发生的原因是什么?我需要一些可以重现错误的事情想法。
答案 0 :(得分:1)
我现在已经多次犯了这个错误,而且当我访问渲染功能中尚未存在的属性时,似乎就会发生这种情况。我的应用程序正在使用React / Redux和ImmmutableJS,并且在任何给定组件的安装上都会发生许多AJAX调用,所以我必须确保我突破了渲染功能,直到一切都是完成装载。例如,当我有这个时,我得到了有问题的错误:
render () {
const displayName = this.props.myObject.get('displayName')
if (this.props.loading) return <Loading />
return <div>{displayName}</div>
}
但是当我切换加载检查时不是这样:
render () {
if (this.props.loading) return <Loading />
const displayName = this.props.myObject.get('displayName')
return <div>{displayName}</div>
}
检查对象是否存在也可以解决这个讨厌的错误。
答案 1 :(得分:0)
Pi带@LaurelB的响应,我诊断出这种情况是在我根据某个值发生变化的变量切换事件绑定(例如onClick
)的功能时在React元素上发生的。毕竟,我意识到这可能不是一个好习惯。
答案 2 :(得分:0)
我遇到了针对Angular 6应用程序的IE11中的错误val image = imageResource(R.drawable.android_studio_logo)
val imageRatio = image.width.toFloat() / image.height.toFloat()
val imageModifier = ImagePainter(image).toModifier(scaleFit = ScaleFit.FillMaxDimension)
Box(LayoutWidth.Fill + LayoutAspectRatio(imageRatio) + imageModifier)
。我当时使用NgClass指令为SVG元素动态设置CSS类。
"Unable to get property 'remove' of undefined or null reference"
解决方案:IE10和IE11需要以下npm,NgClass才能支持SVG元素。
<svg viewBox="0 0 145 110" width="145" height="110" id="svg1">
<path class="bg" [ngClass]="{'my-class': my-cond = 'condition'}" stroke="#ccc" />
</svg>