Index.jsx 不会在状态更改时重新呈现



我使用react-translated作为React应用程序的翻译提供商,index.jsxrender方法为:

ReactDOM.render(
<TranslationProvider language={store.getState().language} translation={translation}>
<MuiThemeProvider theme={theme}>
<Provider store={store}>
<Routes/>
</ Provider>
</MuiThemeProvider>
</TranslationProvider>,
document.getElementById('root')
);

然后,我通过调度操作更新全局状态的语言。。。它可以工作(语言更改(,但这个render不会再次调用,我的应用程序中的文本也不会切换到其他语言。当statestore中发生变化时,它不应该重新发送吗?

如果存在props更改,则需要使用组件生命周期方法componentWillReceiveProps来侦听状态更改。

例如

this.state ={
language: 'defaultlanguage'
}
componentWillReceiveProps(nextProps){
if(nextProps.language !== this.state.props){
this.setState({
language: nextProps.language
}) 
}
}

最新更新