如何从视图中调用组件中的方法?(vue.js 2)



我的观点就是这样:

<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)

最新更新