使用JavaScript函数

时间:2017-05-12 18:17:10

标签: javascript reactjs redux react-redux

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

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

我已尝试连接到某个函数,但它中断了(我没有确切的错误消息。服务器只是遇到了uncaughtException)。由于React组件可以是纯函数,connect()只适用于class ComponentName extends Component(等等)吗?

我想做这样的事情:

我有一个redux动作生成器,如果发现动作的结果已经处于redux状态,我希望生成器跳过执行API调用,但是我不希望每个容器都明确地检查状态单api电话。这有意义吗?

感谢任何想法。

2 个答案:

答案 0 :(得分:14)

connect()附带react-redux包,它是Redux的React绑定。但是,如果您想使用常规JavaScript与Redux状态进行交互,则不需要connect()react-redux。您可以直接与Redux store及其get_bloginfo进行互动。

例如,如果您想听取操作,可以使用subscribe()方法,如下所示,并使用getState()方法访问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";

答案 1 :(得分:0)

假设你有一个动作。只需添加一些标记 - 减速器将检测是否跳过:

DateTime.ParseExact