在我的反应应用中,我设置了这样的语言环境:
const store = createStore(
combineReducers({
i18n: i18nReducer
}),
applyMiddleware(thunk)
);
syncTranslationWithStore(store)
store.dispatch(loadTranslations(translationsObject));
store.dispatch(setLocale('de'));
检查设置哪种语言会有什么好方法?
我试过了:
store.dispatch(getLocale());
但那不起作用。
感谢您的帮助
答案 0 :(得分:2)
您应该使用connect将您的react组件连接到Redux状态,并将指示locale的state属性映射到prop,如下所示:
const mapStateToProps = (state) => {
return {
locale: state.i18n.locale
}
};
const connectedSomeComponent= connect(
mapStateToProps
)(someComponent);
然后您可以在locale
中使用someComponent
道具。
您还可以使用getState直接访问商店状态,因此,如果您想访问react组件外的州属性,可以执行以下操作:
const myState = store.getState();
const locale = myState.i18n.locale;