gpt4 book ai didi

reactjs - 在 redux 中间件中调用 dispatch

转载 作者:行者123 更新时间:2023-12-05 09:16:54 27 4
gpt4 key购买 nike

我正在尝试整合 redux-simple-auth在我现有的 reudx API 中。我的旧实现使用 native fetch 并且我添加了 header 等。这个新模块提供了一个 fetch 替换,但是它返回一个 redux 操作并且我在弄清楚如何设置它时遇到了一些困难。

我的商店:

function configureStore (initialState) {
const middlewares = [
authMiddleware, // This is from rediux-simple-auth
apiMiddleware, // My own middleware
thunk

]

const store = createStore(rootReducer, initialState, compose(
applyMiddleware(...middlewares), getInitialAuthState({ storage }))
)
}

我的中间件简化了:

import { fetch } from 'redux-simple-auth'
export default store => next => action => {
...
next(my start action...)
return store.dispatch(fetch(API_ROOT + endpoint, { method }))
.then(response => {
next(my success/fail action...)
})

}

当我运行它时,我可以在 redux 检查器中看到我的启动和失败操作,但看不到获取操作(它会触发 FETCH 操作)

如果我调用 next 而不是 store.dispatch 那么它会在触发操作的意义上起作用,但它不会返回我无法获得结果的 promise 。

我该如何修复这个流程?

最佳答案

next 不是 dispatch。试试这个:

export default ({dispatch}) => next => action => ...

使用 dispatch 调度您的新 Action 并使用 next(action)原始 Action 传递给下一个中间件。

关于reactjs - 在 redux 中间件中调用 dispatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49523681/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com