Vue:通过变量值动态访问对象

时间:2020-09-28 10:15:27

标签: vue.js object variables eval

我的Vue组件具有方法setQuestions(questionpack)。如您所见,有一个名为questionpack的参数。

在我的组件中,在导出默认值{...}之前,有几种导入方式,例如

<script>
   import Cars from "./../questionsCars.js";  // Content: var Cars = { questions: { ... } }
   import Bikes from "./../questionsBikes.js";
   import Trucks from "./../questionsTrucks.js";
   ...

   export default {
     ...
   }
</script>

此静态代码运行良好:

setQuestions() {
  this.questions = {
    ...Cars.questions,
    ...Cars.questionsAppendOnSingle,
  };
}

但是,如果我尝试通过setQuestions('Cars')之类的变量值访问此Cars对象,它将无法正常工作:

setQuestions(questionpack) {
  console.log("QP: " + questionpack);  // Outputs 'Cars' as aspected
  this.questions = {
    ...eval(questionpack).questions,
    ...eval(questionpack).AppendOnSingle,
  };
}

它会显示以下错误消息:

vendor.js:1108 [Vue警告]:创建的挂钩中出现错误:“ ReferenceError: 未定义汽车”

这有什么窍门?

0 个答案:

没有答案