小编典典

在JavaScript函数中访问Redux存储

reactjs

是否可以将redux状态映射到常规javascript函数而不是React组件?

如果没有,还有其他方法可以将redux状态连接到函数吗?(显然没有明确地将其作为参数传递)

我尝试连接到一个函数,但是会中断(我没有确切的错误消息。服务器只是碰到uncaughtException)。由于React组件可以是纯函数,因此connect()仅适用于class ComponentName extends Component和(或类似函数)吗?

我想做这样的事情的原因:

我有一个redux动作生成器,如果它发现动作的结果已经处于redux状态,我希望该生成器跳过做API调用,但是我不想每次API调用都必须从每个容器中明确检查状态。这有意义吗?

感谢您的任何想法。


阅读 297

收藏
2020-07-22

共1个答案

小编典典

connect()附带的react-redux软件包是Redux的React绑定。但是,如果你想用平常的JavaScript
Redux的状态互动,你不需要任何connect()react- redux为。您可以store使用其API直接与Redux 进行交互。

例如,如果您想听操作,则可以使用subscribe()如下方法,并使用getState()method访问state

let unsubscribe = store.subscribe(function(){
  const state = store.getState();
})

我不太清楚您要达到的目标,但是我希望这会有所帮助。

编辑:

您可以在一个文件中创建商店并将其导出。

store.js

import { createStore } from 'redux'
import reducers from "./reducers";

const store = createStore(reducers)

export default store;

现在,您可以从任何其他文件导入商店并使用它。

import store from "./store";
2020-07-22