ref vue绑定的访问方法
Access method binded by ref vue
我正在尝试从组件访问方法。该组件附加了一个动态引用:
<team-card
:ref="`team-card-details-${team.id}`"
class="mt-5"
v-for="team in teams"
v-on:delete-team="DELETE_TEAM"
:show-delete-btn="true"
:key="team.name"
:team="team"></team-card>
团队卡组件
methods: {
REFRESH_CARD(){
this.$refs[`team-card-details-component-${this.team.id}`].refreshcard()
},
REMOVE_REFRESH_ANIMATION(){
this.$refs[`team-card-details-component-${this.team.id}`].removeRefreshAnimation()
}
}
每当我单击卡片中的按钮时,我都想访问我正在使用此行执行的 REFRESH_CARD
功能:
this.$refs['team-card-details-' + team.id].REFRESH_CARD()
我遇到错误 [Vue warn]: Error in v-on handler: "TypeError: this.$refs[("team-card-details-" + team.id)].REFRESH_CARD is not a function"
我用另一种方法做了同样的事情(但不是动态生成的引用)。有没有人对我收到此错误有任何建议?
如果我做一个简单的 console.log
我可以看到存在的函数和被正确引用的组件:
我不知道为什么,但是 refs
返回了一个数组,我必须访问数组的第一个位置(我不太确定为什么,但如果我发现原因,我会更新答案).所以最终的代码是这样的:
this.$refs['team-card-details-' + team.id][0].REFRESH_CARD()
编辑
正如@0x5453 通过 link
指出的那样
When used on elements/components with v-for, the registered reference
will be an Array containing DOM nodes or component instances.
我正在尝试从组件访问方法。该组件附加了一个动态引用:
<team-card
:ref="`team-card-details-${team.id}`"
class="mt-5"
v-for="team in teams"
v-on:delete-team="DELETE_TEAM"
:show-delete-btn="true"
:key="team.name"
:team="team"></team-card>
团队卡组件
methods: {
REFRESH_CARD(){
this.$refs[`team-card-details-component-${this.team.id}`].refreshcard()
},
REMOVE_REFRESH_ANIMATION(){
this.$refs[`team-card-details-component-${this.team.id}`].removeRefreshAnimation()
}
}
每当我单击卡片中的按钮时,我都想访问我正在使用此行执行的 REFRESH_CARD
功能:
this.$refs['team-card-details-' + team.id].REFRESH_CARD()
我遇到错误 [Vue warn]: Error in v-on handler: "TypeError: this.$refs[("team-card-details-" + team.id)].REFRESH_CARD is not a function"
我用另一种方法做了同样的事情(但不是动态生成的引用)。有没有人对我收到此错误有任何建议?
如果我做一个简单的 console.log
我可以看到存在的函数和被正确引用的组件:
我不知道为什么,但是 refs
返回了一个数组,我必须访问数组的第一个位置(我不太确定为什么,但如果我发现原因,我会更新答案).所以最终的代码是这样的:
this.$refs['team-card-details-' + team.id][0].REFRESH_CARD()
编辑
正如@0x5453 通过 link
指出的那样When used on elements/components with v-for, the registered reference will be an Array containing DOM nodes or component instances.