2016-10-06 9 views
0

多言語サポートを目的としたReact-Nativeアプリがあります。オンザフライでデフォルトのネットワーク層を変更する

Relayを使用していますので、ルートコンポーネントの上にこのようなコードがあります。

Relay.injectNetworkLayer(new DefaultNetworkLayer("http://localhost/graphql")) 

言語パラメータは、グラフAPIを使用してパラメータFacebook does itとして渡されます。

Relay.injectNetworkLayer(new DefaultNetworkLayer("http://localhost/graphql?locale=en_US")) 

アプリの言語を設定から変更できるようにするにはどうすればこの設定を変更できますか?そして、どういう意味で、それらの言語の変更でアプリケーションを再起動するのでしょうか?私はちょうど同じ時間に初めてrelayreact-native-router-fluxのために実装しようとすることで自分自身を混乱される可能性があります ....

これは、その全体が、ルートコンテナコードです:

import Relay, { 
    DefaultNetworkLayer, 
    RootContainer, 
} from 'react-relay' 
import RelayRenderer from 'rnrf-relay-renderer' 
import { 
    Actions, 
    Reducer, 
    Router, 
    Scene 
} from 'react-native-router-flux' 

const locale = `en_US` 
Relay.injectNetworkLayer(new DefaultNetworkLayer(`http://localhost/graphql?locale=${locale}`)) 

const reducerCreate = params => { 
    const defaultReducer = Reducer(params) 
     return (state, action) => { 
      return defaultReducer(state, action) 
     } 
    } 
} 

export default class App extends Component { 
    render() { 
     return (
      <Router 
       createReducer={reducerCreate} 
       wrapBy={RelayRenderer()} 
      > 
       ... 
       ... 
      </Router> 
     ) 
    } 
} 

答えて

0

なぜドン」言語のロケールを指定するヘッダーを使用します。

+0

これはコメントです –

関連する問題