2017-05-17 18 views
0

私は1つの場所ですべてのURLを維持する方法は反応するネイティブ

export default class allAPI extends Component { 

BASE_URL: 'http://xx:xx:xx:xx/8080/api/app/" 

Login:BASE_URL+ '/login'; 
Homepage: BASE_URL + '/home' 
} 

その中に「allAPI.js」とは、例えば、クラス を作成しましたこれらのURLにアクセスして、URLが必要なページに移動します。

+0

私は反応ネイティブで定数を使用し、他のページでこれらの定数を呼び出すことを検討しています。例えば、allapi.jsでLOGIN_URL = "http:// xxxx"、callLoginApi(ユーザー)としてlogin.jsクラスで同じ呼び出し { fetch( 'LOGIN_URL'、{ メソッド: 'POST'、 –

答えて

0

あなただけのリンクを使用し、その後

GLOBAL = require('./globals'); 

に必要とメインでGlobal.js

module.exports = { 
    BASE_URL: 'http://google.com', 
    COLOR_TEXT: 'blue', 
    //etc 
}; 

をビルドしますがあり、正直に言うと

<View><Text>{GLOBAL.BASE_URL}</Text></View> 
+0

はGLOBAL = require( './ globals')をインポートすることができませんでしたので、@dragasメソッドを使用します。 。:) –

0

をそれを行うための多くの方法。クラスを定義し、特定のエンドポイントに対応するすべての変数を配置することで、その周りを回ることができます。

ReactNativeは定義がbase URLであるため、すべてのURLが絶対値でなければなりません。このアプローチの問題は、エンドポイントが変数であることです。つまり、コードのエラーにより、実行時にコードを書き換えることができます。

悲しいことに、JavaScriptはデフォルトではクラス内のconstフィールドをサポートしていませんが、回避策があります。個人的に私は私のエンドポイントクラス構築するために、このスニペットを使用:

export default function constantMaker(clazz, variable, value, writable = false, enumerable = true, configurable = false) 
{ 
    Object.defineProperty(clazz, variable, { 
     value: value, 
     writable: writable, 
     enumerable: enumerable, 
     configurable: configurable 
    }); 
} 

をそしてそのようにそれを呼ばれる:constant.jsあなたのエンドポイントをインポートした後

import makeConstant from "./modules/helper/constant-maker.js"; 
export default class Constant { 

} 

makeConstant(Constant, "baseHTTP", "https:"); 
makeConstant(Constant, "baseUrl", Constant.baseHTTP + "//website.com"); 
makeConstant(Constant, "apiEndpoint", Constant.baseUrl + "/app/"); 
makeConstant(Constant, "newsUrl", Constant.apiEndpoint + "news/"); 
makeConstant(Constant, "clubsUrl", Constant.apiEndpoint + "clubs/"); 
makeConstant(Constant, "timetableUrl", Constant.apiEndpoint + "workout/timetable/"); 

は、そのクラス内のフィールドとして利用できるようになります。

+0

これは私が見つけた最良の方法ですが、私はgetitは何のためにclazzと他の変数が使用されていますか?ありがとう、トン:) –

+0

clazzは、あなたが定数を書くクラスですが、その間に他の変数は、その特定のフィールドを列挙したり構成したりすることができるかどうかを設定します。 – Dragas

+0

正しいと思います。ありがとう:) –

関連する問題