首页 > 解决方案 > 使用字符串变量引用导入的模块

问题描述

我有以下代码片段。

import {English as en} from 'languages/en.js'
import {Spanish as es} from 'languages/es.js'

console.log(this.lang) // es

我正在尝试使用this.lang字符串调用相应的导入模块。但不确定如何调用该模块。

window[this.lang]

行不通。

有什么建议么?

标签: javascript

解决方案


创建一个对象并在其中查找lang

  const result = { es, en }[this.lang];

使用全局范围(又名window)可能会给您带来真正的麻烦,这就是为什么它被认为是一种反模式(以及所有那些 ES 6 特性let,,,,通过使“全局变量”不泄漏到全局范围来强制执行这一点,因此您const可以import'不要访问它们window)。


推荐阅读