reactjs的异步加载配置数据

reactjs的异步加载配置数据,reactjs,ecmascript-6,refluxjs,Reactjs,Ecmascript 6,Refluxjs,我正在尝试加载一个config.json文件,其中包含的属性应该在整个应用程序中用作常量 我有一个config.jsx,如下所示: import React from 'react'; import $ from 'jquery'; var config = { init(){ var deferred = $.Deferred(); let obj = this; $.get("/app/config/config.json").then(function(res

我正在尝试加载一个config.json文件,其中包含的属性应该在整个应用程序中用作常量

我有一个
config.jsx
,如下所示:

import React from 'react';
import $ from 'jquery';

var config = {
  init(){
    var deferred = $.Deferred();
    let obj = this;
    $.get("/app/config/config.json").then(function(response) {
        obj.ApiBaseUrl = response.ApiBaseUrl;
        deferred.resolve();
      }, function(errorResponse) {
        deferred.reject();
      });
    return deferred.promise();
  },
  ApiBaseUrl: null
}

export default config;
然后在加载应用程序之前加载数据并设置配置,如
app.jsx
所示:

import React from 'react';
import Router from 'react-router';
import routes from './routes';
import Config from './config';

Config.init().then(function(resp){
  Router.run(routes, Router.HistoryLocation, Handler => React.render(<Handler />, document.body));  
}, function (err){

});
import React from 'react';
import Config from '../config';

Config.ApiBaseUrl; // This is null.
class Home extends React.Component {
  render() {    
    return (
      <div>
      </div>
    );
  }
}

export default Home;

我如何将我的配置类编写成一个单一的类,一旦调用了
config.init()
,并且设置了类属性,我就可以从导入该类的任何地方访问这些属性了?

当然它是
null
那里。您没有等待它解决。您是否考虑过从“/app/config/config.json”(或类似的东西)导入配置?这样就不会是异步的。将flux与appStore一起使用。使用配置数据填充appStore.appData。使用appData触发顶级组件。根据需要传递。@JanakaStevens你有这种功能的链接吗?这个项目有多种模式。查看RefluxPages了解使用appStore的示例。我还没有路由器模式,我喜欢使用WebSocket。但总的模式是存在的。