我有一个语言简化器,它具有初始语言环境值:
const LanguageReducer = function(
state = { locale: "en", messages: {} },
action = {}
) {
switch (action.type) {
case CHANGE_LANGUAGE_SUCCESS:
...
return state;
default:
return state;
}
};
语言环境的初始值来自当前URL。如何访问我的reducer中的URL和语言环境参数以初始化语言环境?我正在使用React-Router v4
答案 0 :(得分:1)
根据您的需要,您(至少)有两个选择:
1)最简单的方法是从应用程序加载的第一页分配一个操作,该操作使用Route props
将所需的url参数传递给减速器。有关指南,请参见this page。如果您可以将Route
状态和应用程序其余部分的状态分开,那么这就是方法。
2)一种更复杂的方法是使用connected-react-router之类的中间件来保持您的商店和React Router同步。这将为您提供商店中的router
属性(包含历史记录,位置等),您可以随时根据需要读取。