アプリケーション全体で定数として使用する必要があるプロパティを含む 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()
ですか? このクラスをインポートした場所からプロパティにアクセスできますか?