首页 > 解决方案 > 连接动作以存储在组件外部?

问题描述

所以让我们假设我有一个商店,redux-thunk里面有一个中间件。我创建了商店并像这样导出它:

import myOwnCreateStoreMethod from './redux/createStore';
export const store = myOwnCreateStoreMethod();

我现在可以在我的应用程序的任何地方访问它。但是如果我想从任何地方发送一个动作呢?我让他们声明,例如myAction.js

export const myAction = () => (dispatch, getState) =>
    dispatch({ type: 'SOME_TYPE', payload: ... })

现在我可以像这样导入它们并连接到我的商店/组件:

import * as actions from './myActions.js';

const MyComponent = () => <div>Hello World</div>;
const mapStateToProps = () => ({});
export default connect(mapStateToProps, actions)(MyComponent);

我的问题是 - 如果我没有组件但仍想调度像上面那样声明的操作怎么办?

标签: javascriptreactjsredux

解决方案


您可以store直接从

import store from './myStore';
import { myAction } from './myAction';    

store.dispatch(myAction());

Redux 本身就是一个库。

它与 React 无关,它们只是基于 React 单一事实源和 Redux 一个全局存储作为我们应用程序的状态很好地协同工作。

您可以在每个 JavaScript 应用程序中使用 redux。


推荐阅读