vue中在子组件使用this.$parent调用父组件的方法报错
问题:在项目中的子组件调用父组件的closeRankLoading()方法时遇到报错:vue.runtime.esm.js:619 [Vue warn]: Error in v-on handler: "TypeError: this.$parent.closeRankLoading is not a function"原因:原来是子组件在父组件调用布局时外层还套了两个其它element-ui组件
·
问题:在项目中的子组件调用父组件的closeRankLoading()
方法时遇到报错:
vue.runtime.esm.js:619 [Vue warn]: Error in v-on handler: "TypeError: this.$parent.closeRankLoading is not a function"
原因:原来是子组件在父组件调用布局时外层还套了两个其它element-ui组件,导致this.$parent
只是到了上一层组件,并没有到达父组件
<template>
<div>
<el-row :gutter="20">
<el-col :span="12">
<ranking
ref="ranking"
:report-data="overViewData.report"
:group-id="group_id"
:loading="rankLoading"
></ranking>
</el-col>
</el-row>
</div>
</template>
在子组件打印this.$parent
可见:
解决:写成this.$parent.$parent.$parent.closeRankLoading()
可以正常调用
另猜测:此情况下另一种调用方法this.$emit()
报错也可能是同样原因
更多推荐
已为社区贡献5条内容
所有评论(0)