使用react redux访问组件外部的状态

使用react redux访问组件外部的状态,redux,react-redux,Redux,React Redux,我在开发一个基于react redux的大型应用程序。我想向js脚本添加一些实用程序函数,该脚本不包含要“连接”的react组件。如何在没有组件的情况下访问react redux中的状态?MapStateTrops和mapDispatchToProps都不可用-是否需要从顶级index.js文件导出状态对象?看起来很危险 欢迎您的建议 JB你问题的措辞有点奇怪。如果您询问如何访问与任何组件都不相关的store-in实用程序函数,那么您没有使用React-Redux执行此操作:) 在这种情况下,您

我在开发一个基于react redux的大型应用程序。我想向js脚本添加一些实用程序函数,该脚本不包含要“连接”的react组件。如何在没有组件的情况下访问react redux中的状态?
MapStateTrops
mapDispatchToProps
都不可用-是否需要从顶级index.js文件导出状态对象?看起来很危险

欢迎您的建议


JB

你问题的措辞有点奇怪。如果您询问如何访问与任何组件都不相关的store-in实用程序函数,那么您没有使用React-Redux执行此操作:)

在这种情况下,您可以将存储直接导入到这些实用程序功能模块中,或者从具有存储功能访问权限的某个作用域(例如从连接的组件发送的thunk action creator)调用这些函数


有一个相关的。

没有真正优雅的方式来做这件事。参数列表很长。

解决方法: 在实用程序功能范围内导入存储

导入应用商店(安装应用程序时创建的商店)将提供分派获取状态方法,您可以使用这些方法访问状态变量

src/store.js

import ReduxThunk from 'redux-thunk';
import { createStore, applyMiddleware } from 'redux';
import logger from 'redux-logger';
import reducers from './reducers';

var middleware = [ReduxThunk];
if (process.env.NODE_ENV !== 'production') {
  middleware = [...middleware, logger];
}

const createStoreWithMiddleware = applyMiddleware(...middleware)(createStore);

export default createStoreWithMiddleware(reducers);
import store from "./store"
const { var1, var2 } = store.getState();
helper.js

import ReduxThunk from 'redux-thunk';
import { createStore, applyMiddleware } from 'redux';
import logger from 'redux-logger';
import reducers from './reducers';

var middleware = [ReduxThunk];
if (process.env.NODE_ENV !== 'production') {
  middleware = [...middleware, logger];
}

const createStoreWithMiddleware = applyMiddleware(...middleware)(createStore);

export default createStoreWithMiddleware(reducers);
import store from "./store"
const { var1, var2 } = store.getState();

是的,我不想直接进口商店,因为我认为这是个坏主意。我确实在调用函数并从支持存储的组件向它们发送数据,但我希望尽可能避免所有参数传递…@Jaked222-我不想导出或导入存储(尽管这都是客户端的,所以我可以)。另外,根据Abramov从该页面链接的建议,我正在考虑使用空的render()方法创建一个组件,但正在寻找更好的解决方案……在您的上下文中,“connect”是什么意思?您应该尝试引用。
从'react redux'导入{connect}