如何在操作文件中订阅redux存储中的更改

如何在操作文件中订阅redux存储中的更改,redux,react-redux,Redux,React Redux,我有以下代码 const reduxStore = require('redux/store'); console.log(typeof reduxStore.subscribe); 如果我在redux操作文件中运行它,我的typeof是未定义的。 如果我在一个普通的js中运行它,我的typeof是函数 现在这样做似乎有悖常理,但我有一个模式,我有一个共享操作文件,也就是说,在这个文件中定义的操作可以在两个不同的还原器中使用 但是,其中一些操作在Reducer Reducer 1和Reduc

我有以下代码

const reduxStore =  require('redux/store');
console.log(typeof reduxStore.subscribe);
如果我在redux操作文件中运行它,我的typeof是未定义的。 如果我在一个普通的js中运行它,我的typeof是函数

现在这样做似乎有悖常理,但我有一个模式,我有一个共享操作文件,也就是说,在这个文件中定义的操作可以在两个不同的还原器中使用

但是,其中一些操作在Reducer Reducer 1和Reducer 2之间共享时,必须运行特定存储域的单独操作

因此,根据reducer1.acceptGeoCode在使用reducer2的应用程序部分运行时发生的情况,应该运行reducer2.geoCodeSuccess或reducer2.geoCodeFailed

对我来说,订阅reducer2操作js中的更改似乎是最容易的,然后在更改中分派我应该使用的本地操作


这就是为什么我想在操作文件中使用reduxStore.subscribe。我该如何做,或者如果我做不到,我认为做我想做的事情必须可行的正确方法是什么

如果我理解正确,您希望reducer 2了解reducer 1如何处理操作,对吗

实现这一点的方法是组合减速器,而不是组合减速器。请在此处查看此操作:

以下几点可能会对您有所帮助:

还原剂应该是纯的。这意味着我们不会在减速机内部进行ajax调用或其他副作用。这是行动的领域,例如:redux thunk和Middleware。 在大多数应用程序中,实际上应该只有一个存储。因此,如果您有一个模式,其中一个存储订阅另一个存储,那么您可能应该重构代码,使其只有一个存储。需要明确的是,您可以在一个存储区中将多个减缩器组合在一起,这就是Redux的工作原理。