reactjs - react 访问语言环境的最简单方法是什么

标签 reactjs react-redux

在我的 react 应用程序中,我设置了如下区域设置:

const store = createStore(
    combineReducers({
        i18n: i18nReducer
    }),
    applyMiddleware(thunk)
);
syncTranslationWithStore(store)
store.dispatch(loadTranslations(translationsObject));
store.dispatch(setLocale('de'));

什么是检查设置的语言的好且简单的方法?

我试过这个:

store.dispatch(getLocale());

但这不起作用。

感谢您的帮助

最佳答案

您应该使用 connect 将您的 React 组件连接到 Redux 状态并将指示语言环境的状态属性映射到 prop,如下所示:

const mapStateToProps = (state) => {
    return {
        locale: state.i18n.locale
    }
};

const connectedSomeComponent= connect(
    mapStateToProps
)(someComponent);

那么你可以简单地在 someComponent 中使用 locale 属性。

您还可以使用 getState 直接访问存储状态因此,如果您想访问 React 组件外部的状态属性,您可以执行以下操作:

const myState = store.getState();
const locale = myState.i18n.locale;

关于reactjs - react 访问语言环境的最简单方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43205892/

相关文章:

javascript - 根据数组值删除对象属性

Javascript 通过包含搜索词的标签子数组过滤或减少每个 JSON 对象

reactjs - 为什么我的样式在codesandbox中没有生效?

node.js - React-Router 与 Node.js

javascript - 如何将修改后的 prop 发送到 redux store?

javascript - HOC 和标准组件之间的主要区别是什么?我什么时候应该正确使用它们?

ios - 无法取消菜单选择 IOS - React Native

javascript - 为什么我在这个 React/Typescript 应用程序中收到 no exported member 错误?

reactjs - 使用 CRA React 清除缓存

javascript - 如何将 Prop 映射到对象值 React Big Calendar