我正在尝试加载一个 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){
});
所以之后Config.init()
,我们就可以访问加载的数据了Config.ApiBaseUrl
。如果我们将配置导入另一个文件,我们会丢失这些数据,例如home.jsx
:
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()
被调用并设置类属性,我就可以从我们导入此类的任何地方访问属性?