Ich bin neu bei react.js. Ich habe eine Komponente implementiert, in der ich die Daten vom Server abrufe und wie folgt verwende:
CallEnterprise:function(TenantId){
fetchData('http://xxx.xxx.xx.xx:8090/Enterprises?TenantId='+TenantId+' &format=json').then(function(enterprises)
{
EnterprisePerspectiveActions.getEnterprise(enterprises);
}).catch(function()
{
alert("There was some issue in API Call please contact Admin");
//ComponentAppDispatcher.handleViewAction({
// actionType: MetaItemConstants.RECEIVE_ERROR,
// error: 'There was a problem getting the enterprises'
//});
});
},
Ich möchte die URL in der Konfigurationsdatei speichern. Wenn ich diese auf dem Testserver oder in der Produktion bereitstelle, muss ich nur die URL der Konfigurationsdatei ändern, nicht in der js-Datei, aber ich weiß nicht, wie die Konfigurationsdatei in react.js verwendet wird
Kann mich bitte jemand anleiten, wie ich das erreichen kann?
javascript
reactjs
configuration
webpack
flux
Dhaval Patel
quelle
quelle
Antworten:
Mit Webpack können Sie env-spezifische Konfiguration in das
externals
Feld in setzenwebpack.config.js
Wenn Sie die Konfigurationen in einer separaten JSON-Datei speichern möchten, können Sie diese Datei auch anfordern und zuweisen
Config
:Dann können Sie in Ihren Modulen die Konfiguration verwenden:
Für die Reaktion:
Ich bin mir nicht sicher, ob es Ihren Anwendungsfall abdeckt, aber es hat bei uns ziemlich gut funktioniert.
quelle
externals
erwartet wird, dass ein Code ausgewertet wird, müssen Sie den JSON stringifizieren.Wenn Sie Create React App verwendet haben, können Sie eine Umgebungsvariable mithilfe einer ENV-Datei festlegen. Die Dokumentation finden Sie hier:
https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables
Grundsätzlich machen Sie so etwas in der .env-Datei im Projektstamm.
Sie können von Ihrer Komponente aus mit darauf zugreifen
quelle
REACT_APP_
REACT_APP_MYSETTING=value
, dann wieprocess.env.REACT_APP_MYSETTING
in meinem JSX-Code darauf zu verweisen , und es hat funktioniert. Vielen Dank!Sie können das dotenv-Paket verwenden, unabhängig davon, welches Setup Sie verwenden. Sie können eine .env-Datei in Ihrem Projektstamm erstellen und Ihre Schlüssel wie folgt angeben
Rufen Sie in Ihrer Anwendungseintragsdatei einfach dotenv () auf. bevor Sie wie folgt auf die Schlüssel zugreifen
quelle
REACT_APP_
Falls Sie eine .properties-Datei oder eine .ini-Datei haben
Eigentlich für den Fall, dass Sie eine Datei mit Schlüsselwertpaaren wie diesen haben:
Sie können dies über ein npm-Modul namens in webpack importieren Properties-Reader
Ich fand das sehr hilfreich, da ich React in Java Spring Framework integriere, wo es bereits eine application.properties-Datei gibt. Dies hilft mir, alle Konfigurationen an einem Ort zusammenzuhalten.
"properties-reader": "0.0.16"
const PropertiesReader = require('properties-reader');
const appProperties = PropertiesReader('Path/to/your/properties.file')._properties;
externals: { 'Config': JSON.stringify(appProperties) }
var Config = require('Config') fetchData(Config.serverUrl + '/Enterprises/...')
quelle