我的观点就是这样:
<div class="row no-gutter">
<div class="col-md-9 col-xs-12">
<div class="wrap-tabs">
<ul class="nav nav-tabs nav-cat">
<li role="presentation" class="active"><a href="#" data-toggle="tab" @click="getPlayer(1)">England</a></li>
<li role="presentation"><a href="#" data-toggle="tab" @click="getPlayer(2)">Spain</a></li>
<li role="presentation"><a href="#" data-toggle="tab" @click="getPlayer(3)">Italy</a></li>
</ul>
</div>
</div>
</div>
<br>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active">
<top-player-view country_id="1"></top-player-view>
</div>
</div>
我的组件顶级播放器视图是这样:
<template>
...
</template>
<script>
export default{
props:['country_id'],
created() {
this.$store.dispatch('getTopPlayers', this.country_id)
}
methods: {
getPlayer: function(country_id) {
this.$store.dispatch('getTopPlayers', country_id)
}
}
}
</script>
我尝试在顶级播放器视图组件中调用getPlayer方法。我从视图中调用该方法。您可以在上面看到我的代码
单击选项卡时,我在控制台上检查存在错误:
[vue warn]:属性或方法" getPlayer"未定义 实例但在渲染过程中引用。确保声明反应性 数据选项中的数据属性。(在根实例中找到)
uck offult typeerror:getPlayer不是函数
我该如何解决?
您需要在上实际调用该方法
一个解决方案:将ref="player"
添加到您的top-player-view
,然后致电$refs.player.getPlayer(1)
,而不是getPlayer(1)