无需 redux 即可动态更改语言环境
Dynamically change locale without redux
我想知道是否可以动态更改语言环境并在不使用 redux 的情况下重新呈现应用程序。
ReactDOM.render(
<IntlProvider locale={window.locale} messages={window.messages} >
<Router history={history}>
<App />
</Router>
</IntlProvider>,
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>,
)
}
}
我想知道是否可以动态更改语言环境并在不使用 redux 的情况下重新呈现应用程序。
ReactDOM.render(
<IntlProvider locale={window.locale} messages={window.messages} >
<Router history={history}>
<App />
</Router>
</IntlProvider>,
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>,
)
}
}