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.