在JavaScript函数中访问Redux商店

jac*_*ood 5 javascript reactjs redux react-redux

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

如果没有,是否有另一种方法将redux状态连接到函数?(显然没有明确地将其作为参数传递)

我已经尝试连接到一个函数,但它中断(我没有确切的错误消息.服务器只是遇到一个uncaughtException).由于React组件可以是纯函数,connect()只能用于class ComponentName extends Component(和喜欢)?

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

我有一个redux动作生成器,如果发现动作的结果已经处于redux状态,我希望生成器跳过执行API调用,但是我不希望每个api调用都要从每个容器中显式检查状态.这有意义吗?

谢谢你的任何想法.

Tha*_*ara 17

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

例如,如果要监听操作,可以使用subscribe()如下getState()方法并使用方法来访问state.

let unsubscribe = store.subscribe(function(){
  const state = store.getState();
})
Run Code Online (Sandbox Code Playgroud)

我不太清楚你想要达到的目标,但我希望这会有所帮助.

编辑:

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

store.js

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

const store = createStore(reducers)

export default store;
Run Code Online (Sandbox Code Playgroud)

现在,您可以从任何其他文件导入存储并使用它.

import store from "./store";
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

6948 次

最近记录:

8 年,6 月 前