Javascript 如何从视图中调用组件中的方法?(vue.js 2)
我的看法是这样的:Javascript 如何从视图中调用组件中的方法?(vue.js 2),javascript,vue.js,vuejs2,vue-component,Javascript,Vue.js,Vuejs2,Vue Component,我的看法是这样的: <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="
<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>
我的组件顶级播放器视图如下所示:
<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>
...
导出默认值{
道具:['country_id'],
创建(){
此.$store.dispatch('getTopPlayers',此.country\u id)
}
方法:{
getPlayer:函数(国家/地区id){
此.$store.dispatch('getTopPlayers',国家/地区id)
}
}
}
我尝试在TopPlayer视图组件中调用getPlayer方法。我从视图调用该方法。你可以在上面看到我的代码
当我单击该选项卡时,我检查控制台上存在的错误:
[Vue warn]:未在上定义属性或方法“getPlayer”
实例,但在渲染期间被引用。确保声明为被动
数据选项中的数据属性。(在根实例中找到)
未捕获类型错误:getPlayer不是函数
如何解决它?您需要实际调用元素上的方法 一个解决方案:
将
ref=“player”
添加到您的顶级玩家视图中
,然后调用$refs.player.getPlayer(1)
,而不仅仅是getPlayer(1)您是否在使用vue加载程序
?如果我没有弄错的话,Vue2 created()将被mounted()替换为mounted()。@Daniel T.,似乎没有使用it@peaceman,似乎问题不在那里