如何在JavaScript和VueJS中使用字符串变量为其名称调用导入的模块

问题描述

我在VueJS中只有一个文件组件,可以从其他文件中导入模块,如下所示:

<template>
     //Some code here that call for the function "myFunction" and pass to it an object...
</template>

<script>
    import Task from "../../APIs/Task"
    import Status from "../../APIs/Status"
    
    export default{
        data(){ 
            //Some code here...
        },methods: {
            myFunction(someObject){
                <!-- This is the part that does not work. Please see the error message below. -->
                [someObject.moduleNameAsStoredOnObject].someFunctionThatBothModulesHave(someObject.payload)
            }
        }
    }
</script>

这是我在控制台中看到的错误: [Vue warn]: Error in v-on handler: "TypeError: [someObject.moduleNameAsStoredOnObject].someFunctionThatBothModulesHave is not a function"

如您所见,似乎存储在someObject.moduleNameAsStoredOnObject中的字符串未转换为模块名称。相反,整个表达式按原样使用。
在代码的其他地方,我使用以下语法动态调用模块的函数: ModuleName[functionNameAsString]

想法是创建一个通用方法,该方法以模块名称和有效负载作为参数,并对不同类型的对象执行基本的CRUD功能,并使用每种对象类型的专用模块来分离职责。

有人可以告诉我是否有一种方法可以使用变量中的模块名称而不使用switchif语句吗?

先谢谢您,
骗子。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)