不能使用$ refs使用变量名代替直接值

问题描述 投票:1回答:1

我正在尝试使用$ refs从父组件中调用子组件的方法。如果我按常规方式操作,它会起作用:this.$refs.actualNameOfTheChildComponent.someMethod()

但是出于我的应用程序的需要,我必须使用变量名称而不是子组件的实际名称:

const previousAction = `action${i-1}`
this.$refs.previousAction.showConflict()

[在第二行中,Vue不明白我不是在引用名为previousAction的子组件,而是在我的名字是变量previousAction的值的子组件。

什么是正确的方法?

vue.js refs
1个回答
1
投票
const previousAction = `action${i-1}` this.$refs[previousAction].showConflict()

您可以详细了解

点符号和

括号符号 here之间的区别。

点和括号之间有一些重要区别表示法:
点符号:

属性标识只能是字母数字(以及_和$)
    属性标识符不能以数字开头。
  • 属性标识符不能包含变量。
  • 确定-obj.prop_1,obj.prop $
  • 不正常-obj.1prop,obj.prop名称

  • 括号符号:
  • 属性标识符必须是字符串或引用字符串的变量。

    • 可以使用以开头的变量,空格和字符串用数字
    • 确定-obj [“ 1prop”],obj [“ prop name”]
    © www.soinside.com 2019 - 2024. All rights reserved.