首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态获取.js文件,而不是导入它们

动态获取.js文件,而不是导入它们
EN

Stack Overflow用户
提问于 2016-07-07 15:17:05
回答 0查看 520关注 0票数 0

我有一个支持30+语言的小应用程序。我使用react-intl来完成我的任务。在react-intl中,我必须导入每个本地文件大小约为7-8KB的所有语言环境,而我希望减少这些不必要的导入,并且只想导入一个文件

app.js

代码语言:javascript
复制
import {IntlProvider, addLocaleData} from 'react-intl'
import ca from 'react-intl/locale-data/ca'
import cs from 'react-intl/locale-data/cs'
...
import hu from 'react-intl/locale-data/hu'
import id from 'react-intl/locale-data/id'
import enMessages from '../assets/translations/en.json'

Translations.getLocale('fr').then(function(localeData){
  addLocaleData(localeData);
  console.log("localeData");
  console.log(localeData);  //Code instead of array of objects
 }, function(status) {
  alert('Something went wrong.');
});

现在,cacshu等包含从各自的js文件返回的array of objects

我尝试使用XHR,但返回的不是对象数组,而是.js文件中编写的代码。有没有什么方法可以动态导入js文件,或者是否可以从XMLHttpRequest返回的代码中获取对象数组。

Translations.js

代码语言:javascript
复制
getLocale: function(lang, successHandler, errorHandler){
  var url = 'http://localhost/img/' + lang + '.js';
  return new Promise(function(resolve, reject) {
    var xhr = new XMLHttpRequest();
    xhr.open('get', url, true);
    //xhr.responseType = 'application/javascript';
    xhr.onload = function() {
      var status = xhr.status;
      if (status == 200) {
        resolve(xhr.response);
      } else {
        reject(status);
      }
    };
  xhr.send();
  });
  //return message;
}
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38239600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档