Javascript 在不重复的情况下动态更改区域设置
我想知道是否有可能在不使用redux的情况下动态更改区域设置并重新启动应用程序Javascript 在不重复的情况下动态更改区域设置,javascript,reactjs,internationalization,react-intl,Javascript,Reactjs,Internationalization,React Intl,我想知道是否有可能在不使用redux的情况下动态更改区域设置并重新启动应用程序 ReactDOM.render( <IntlProvider locale={window.locale} messages={window.messages} > <Router history={history}> <App /> </Router> </IntlProvider>, document.getElemen
ReactDOM.render(
<IntlProvider locale={window.locale} messages={window.messages} >
<Router history={history}>
<App />
</Router>
</IntlProvider>,
document.getElementById('root'));
registerServiceWorker();
ReactDOM.render(
,
document.getElementById('root');
registerServiceWorker();
您可以在IntlProvider
上方使用容器组件,并将区域设置作为道具传递。但我认为,向下传递组件树会非常乏味:
class Container extends React.Component {
state: {
locale: window.locale
}
changeLocale = (locale) => this.setState({ locale })
render() {
return (
<IntlProvider locale={this.state.locale} messages={window.messages} >
<Router history={history}>
<App changeLocale={this.changeLocale} />
</Router>
</IntlProvider>,
)
}
}
类容器扩展React.Component{
声明:{
语言环境:window.locale
}
changeLocale=(locale)=>this.setState({locale})
render(){
返回(
,
)
}
}
是的,这是个好主意,但经过一些研究后,我决定继续使用Redux。我之所以避免使用它,是因为我的老师不让我使用,但现在他允许我使用Redux。