一、发生场景
在使用Ant Design 时,因为需求更改,在原本的代码外层又套上了UI组件,导致了原本在子组件中使用父组件的属性和方法失效。this.$parent.xx is not a function …
例如使用了:
<a-tabs>
<a-tab-pane key="1">
<div />
</a-tab-pane>
</a-tabs>
二、原因
在使用Ant Design 的UI组件时,a-tab,a-tab-pane本身就属于一个子组件,子组件嵌套子组件,嵌套了多层的关系。
三、解决办法
1.可以根据需要多套几层$parent 。如 this. $parent.$parent.xx
2.直接使用this.$emit()的方法去调用所用到的父组件的方法或者通过绑定属性及props调用父组件的属性及方法