React App刷新道具更改

时间:2016-10-20 17:28:35

标签: reactjs redux react-intl

我正在实施Yahoo React-Intl来本地化我的应用程序。为了做到这一点,我必须使用Localizer包装ROOT,如下所示:

const Root = React.createClass({

 childContextTypes: {
     refresh: React.PropTypes.func
 },

 getChildContext() {
     return {
         refresh: () => this.forceUpdate()
     }
 },

 render() {
   let { language, messages } = this.props;
     return (
         <Provider store={store }>
           <IntlProvider locale="en" messages= { messages } >
             <Router history={browserHistory}>
             </Router>
           </IntlProvider>
         </Provider>
       )
   }
 }

function mapStateToProps(state) {
  return {
   language: state.currentLanguage.language,
   messages: state.currentLanguage.messages
  };
}

export default connect(mapStateToProps, {})(Root)

使用&#34;消息&#34;是一个包含键值转换映射的JSON对象。

我的问题是我必须使其动态化,以便用户可以选择更改语言。我创建了一个Action / Reducer组合,以便在应用程序状态中更改分配给消息prop的对象。但是,当我调用操作并向消息提供新对象时,整个页面将刷新,状态将恢复为初始值。

默认情况下,消息是一个空变量,并为其分配一个包含中文字符的id值的对象。默认情况下,在给定对象时,可以正确查看翻译。只有当我通过操作更新它时,应用程序才会刷新,并且无法获得所需的结果。

可能导致我的应用程序刷新的原因是什么?

0 个答案:

没有答案