我有一个React-Native应用程序,旨在提供多语言支持。
它使用Relay
,所以我在根组件上面有这样的代码。
Relay.injectNetworkLayer(new DefaultNetworkLayer("http://localhost/graphql"))
现在,语言参数通过参数Facebook does it及其Graph API传递。
Relay.injectNetworkLayer(new DefaultNetworkLayer("http://localhost/graphql?locale=en_US"))
如果可以从设置更改应用程序的语言,如何动态更改?从某种意义上说,如果用那些语言变化重新启动应用程序呢?
我可能只是试图同时第一次实施relay
和react-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)
为什么不使用指定语言区域设置的标头。