簡體   English   中英

如何從視圖中調用組件中的方法? (vue.js 2)

[英]How can I call method in the component from view? (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警告]:屬性或方法“ getPlayer”未在實例上定義,但在渲染期間被引用。 確保在data選項中聲明反應性數據屬性。 (在根實例中找到)

未被捕獲的TypeError:getPlayer不是函數

我該如何解決?

您實際上需要在元素調用方法。

一種解決方案:將ref="player"添加到top-player-view ,然后調用$refs.player.getPlayer(1)而不是getPlayer(1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM