gpt4 book ai didi

Redux 中间件 : How to pass additional arguments to middleware

转载 作者:行者123 更新时间:2023-12-01 10:32:40 24 4
gpt4 key购买 nike

我正在使用 Redux + Middleware 创建一个聊天应用程序,并且希望在调度 ADD_MESSAGE 的操作时使用中间件将对象存储在本地存储对象中:

export function storageMiddleware(store) {
return next => action => {
const result = next(action);
if (action.type === "ADD_MESSAGE") {
// Add to my storage object here
}

return result;
};

}

如果像这样应用我的中间件:
const store = createStore(
reducer,
applyMiddleware(thunk, chatMiddleware)
)

我想传入我的存储对象 storage ,但在文档中找不到如何传入其他参数的任何地方。我怎样才能做到这一点?

最佳答案

您需要再添加一层函数嵌套才能使其工作。 redux-thunk 做同样的事情:

// Middleware definition
function createThunkMiddleware(extraArgument) {
return ({ dispatch, getState }) => next => action => {
if (typeof action === 'function') {
return action(dispatch, getState, extraArgument);
}

return next(action);
};
}

const thunk = createThunkMiddleware();
thunk.withExtraArgument = createThunkMiddleware;

// Middleware usage
const store = createStore(
reducer,
applyMiddleware(thunk.withExtraArgument(api))
)

关于Redux 中间件 : How to pass additional arguments to middleware,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40730862/

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