【发布时间】:2021-06-11 17:26:45
【问题描述】:
我有一个关于如何将函数传递给孙子组件的新手 Vue 问题。在这种情况下,Vuex 是矫枉过正的,发出事件看起来并不比函数传入语法好。
祖父组件:
<b-tabs card v-model="tabIndex" active-nav-item-class="nav-active">
<b-tab title="Tổng quan">
<LazyDataLeagueGeneral
@changeLoadingBar="changeLoadingBar"
/>
</b-tab>
<b-tab title="Lịch thi đấu"><p>I'm the second tab</p></b-tab>
<b-tab title="Thống kê cầu thủ"><p>I'm the second tab</p></b-tab>
</b-tabs>
有方法
changeLoadingBar(status) {
this.loadingBar = status;
console.log(status);
},
在General组件上,它有另一个子组件调用TeamStandings并再次传递changeLoadingBar
<LazyDataLeagueTeamStandings
:changeLoadingBar="changeLoadingBar"
/>
props: {
changeLoadingBar: Function
}
TeamStandings(孙子):
props: {
changeLoadingBar: Function
}
我尝试调用 changeLoadingBar 但得到 TypeError: this.changeLoadingBar is not a function
mounted() {
console.log("progress mounted");
this.changeLoadingBar(false);
},
更新:在祖父母我忘记将道具传递给孩子
<LazyDataLeagueGeneral
@changeLoadingBar="changeLoadingBar"
:changeLoadingBar="changeLoadingBar"
/>
【问题讨论】: