Javascript 在不重复的情况下动态更改区域设置

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

我想知道是否有可能在不使用redux的情况下动态更改区域设置并重新启动应用程序

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。