gpt4 book ai didi

javascript - Redux reducer 的替代品

转载 作者:行者123 更新时间:2023-11-29 23:13:50 24 4
gpt4 key购买 nike

我正在构建其他应用程序将使用的库。我的库是 redux 的扩展。

为了让这个问题尽可能笼统,我目前有中间件、action creators 和一个 reducer。

reducer 是问题所在,因为我的 reducer 依赖于状态结构,作为库开发人员,我不能也不应该知道。用户可以使用 combineReducers 函数或其他函数,并为我的 reducer 的状态指定他想要的任何名称。

我的问题是——在这种情况下,Redux.js 库为库开发人员提供了哪些选项;隐藏 reducer / reducer 的其他替代品?

最佳答案

将您的库包装在一个配置函数中,这需要用户提供一个 selector , 指向 place 你的 reducer 所在的状态。

此外,如果用户访问您的状态(目前您不是这种情况),您可以提供选择器来使用状态,而无需了解它的结构。

一个一般的非工作示例:

const createSelectors = (mainSelector) => ({
selectorA: (state) => mainSelector(state).dataA,
selectorB: (state) => mainSelector(state).dataB,
});

const createMiddlewares = (actionTypes, selectors) => {
const middlewareA = ({ getState, dispatch }) =>
next => action => {
const myStateA = selectors.selectorA(getState());
};

return {
middlewareA
};
};

const factory = (mainSelector = ({ myState }) => myState) => {
const actionTypes = {};
const actions = {};
const reducer = () => {};
const selectors = createSelectors(mainSelector);
const middleware = createMiddlewares(actionTypes, selectors);

return {
actionTypes,
actions,
reducer,
middleware,
selectors
};
};

关于javascript - Redux reducer 的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53353898/

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