javascript - 无法访问 actions/api 服务中的 redux 存储(没有 connect() func)

标签 javascript reactjs redux react-redux

我正在尝试从我的应用程序中的 auth reducer 获取 token ,以便后续请求更多资源。

问题是我无法在我的组件之外的任何地方访问 store.getState()store。像 actions/api 服务。

我记得之前制作过一个应用程序,我可以毫无问题地完成。

这是一个人为的例子:https://stackblitz.com/edit/react-redux-app-1wxxab?file=index.js我制作了一个基本的待办事项应用程序,您可以在 actions/index.js 中看到,当我 console.log(store) 时,我得到了 undefined。

更新:我更新了示例以强调问题,我无法在单独的文件 api.js

中访问它

另一个例子:https://stackoverflow.com/a/43944684/1356046他们说它是这样工作的,但我无法重现它。

无论如何要解决这个问题并访问商店状态?从昨天开始尝试了一切。谢谢。

最佳答案

创建时导出存储,然后使用它,例如 store.dispatch(action); 或创建特定于 api 的中间件

参见 What is the best way to access redux store outside a react component?许多例子

更新:

https://stackblitz.com/edit/react-redux-app-1mswrv

store.js:

import { configureStore } from "redux-starter-kit";
import rootReducer from './reducers'

export const store = configureStore({
  reducer: rootReducer,
});

index.js:

import React from 'react'
import { render } from 'react-dom'
import { Provider } from 'react-redux'
import App from './components/App'
import { store } from "./store";

render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root')
)

api.js:

import {store} from './store';

// Some promise which dispatches a fetch request after getting the token from the store

export const getSomething = () => {
  console.log('store:', store);
  return store;
}

关于javascript - 无法访问 actions/api 服务中的 redux 存储(没有 connect() func),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58626105/

相关文章:

javascript - 如何打印嵌套对象的所有值

javascript - 在 MongoDB 3.6 NodeJS 驱动程序中断言?以及在使用promise实现时如何使用assert?

javascript - 尝试调试相邻 JSX 元素错误

reactjs - 使用webpack和react-router进行延迟加载和代码分割不加载

javascript - --如何让这个 React/Redux 代码变得 DRY

javascript - 使用亚马逊付款 在弹出窗口中打开

javascript - 如何一个字一个字地写?

JavaScript,将对象转换为数组

javascript - 警告 : Failed prop type: Invalid prop `component` of type `object` supplied to `Route` , 预期 `function` 使用 react-router-dom 时出错

javascript - 在 Normalizr 模式中设置深度关联