首页 > 解决方案 > @reduxjs/toolkit 上的 replaceReducer

问题描述

虽然我是 redux 和 RTK 的新手,但我只是用 RTK 开始 redux 项目,就好像这些天你从 Spring Boot 而不是 Spring 开始一样。

我想在 redux 工具包(RTK)上按需动态注入减速器。我意识到我need to keep track of current reducers要成功了。我希望我的 RTK 商店会引用它们,但不幸的是,它似乎没有这样的属性。

虽然我发现这个模块似乎可以完成这项工作,但似乎我必须回到创建 RTK 之前的日子才能使其工作。

import {createStore, createReducer, Slice, Reducer, AnyAction, combineReducers} from "@reduxjs/toolkit";

const Store = createStore<any, any, any, any>(createReducer({}, () => {}));

const reducers: {
    [key: string]: Reducer<any, AnyAction>;
} = {};

export const injectReducer = (slice: Slice) => {
    reducers[slice.name] = slice.reducer;
    Store.replaceReducer(combineReducers(reducers));
};

甚至更多(也许我只是不知道方式)类型定义会变得疯狂。

有没有办法做到这一点?

标签: redux-toolkitcode-splitting

解决方案


推荐阅读