我正在尝试从我的应用程序中的 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/