我正在使用react-redux-i18n
而我在更新I18n.t helper
我有一个调用动作的按钮,该动作调度react-redux-i18n
:
<FlatButton
label={languageToDisplay}
labelStyle={styles.buttonLabel}
onClick={() => this.props.actions.setLanguage(languageToDisplay)}
style={styles.button}
/>
调用此函数:
export default function setLanguage(language: string) {
return async (dispatch) => {
dispatch(setLocale(language));
};
}
虽然确实更改了I18n._locale
,但它不会重新渲染和翻译文本。任何人都知道如何操作它?
我正在使用react-redux-i18n
,因为我喜欢react-native
翻译方式:I18n.t(...)
它很干净,并且不会仅对<FormationMessage />
或<Translate />
如果有人知道如何修复它或者使用与react-redux-i18n
相同的翻译风格的其他库,请告诉我们:)
答案 0 :(得分:1)
找到解决此问题的方法:
import React, { Component } from 'react';
import { connect } from 'react-redux';
@connect(state => ({
i18n: state.i18n, // <= this makes your component rerender on language change
}), dispatch => ({ dispatch }))
class SomeClass extends Component {
......
}
告诉我你是否有更好的方法。