Reactjs 使用React Redux的多个存储

Reactjs 使用React Redux的多个存储,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我正在尝试连接组件上的多个存储。我在文档上尝试了该示例,但在创建上下文时抛出错误: 错误 Context'不能分配给类型“Context”。 如果我只使用没有上下文的compose,则无法识别组件: 错误 JSX元素类型“Main”没有任何构造或调用签名。 有人知道如何连接多个商店吗 实施过程如下: index.tsx const initialA={ 会话:错误 }; const ContextA=React.createContext(initialA); const store=confi

我正在尝试连接组件上的多个存储。我在文档上尝试了该示例,但在创建上下文时抛出错误: 错误
Context'不能分配给类型“Context”。

如果我只使用没有上下文的compose,则无法识别组件: 错误
JSX元素类型“Main”没有任何构造或调用签名。

有人知道如何连接多个商店吗

实施过程如下:

index.tsx

const initialA={
会话:错误
};
const ContextA=React.createContext(initialA);
const store=configureStoreSession();
返回(
);
}
main.tsx

type MainProps={
会话:布尔;
};
函数Main({onSession}:MainProps){
返回(
有会话?{onSession}
)
}
常量mapStateA=(状态:AppStateA)=>{
返回{
过滤器:state.stateA.filters
};
};
常量mapStateB=(状态:AppStateB)=>{
返回{
会话:state.stateB.onSession
};
};
常量mapDispatchA={};
常量mapDispatchB={};
导出默认组合(
连接(mapStateA、MAPDISPATCH A),
连接(mapStateB、mapDispatchB)
)(主要);
不能在一个组件中读取多个存储(极少数边缘情况除外),以及

如果您能添加更多关于您试图解决的实际问题的详细信息,我可能可以添加更多的详细信息以提供帮助。否则,请不要尝试这样做-这是错误的方法。

您不能在一个组件中读取多个存储(极少数边缘情况除外),并且

如果您能添加更多关于您试图解决的实际问题的详细信息,我可能可以添加更多的详细信息以提供帮助。否则,请不要尝试这样做-这是错误的方法。

试试看

import rootReducer from './slices/rootReducer';

const store = configureStore({
  reducer: rootReducer,
  middleware: [...getDefaultMiddleware()]
});

const storeContext = createContext<ReactReduxContextValue>({store, storeState: rootReducer});
从“./slices/rootReducer”导入rootReducer;
常量存储=配置存储({
还原剂:根还原剂,
中间件:[…getDefaultMiddleware()]
});
const storeContext=createContext({store,storeState:rootReducer});
试试看

从“./slices/rootReducer”导入rootReducer;
常量存储=配置存储({
还原剂:根还原剂,
中间件:[…getDefaultMiddleware()]
});
const storeContext=createContext({store,storeState:rootReducer});

因此,我们的想法是这样做:


会话存储可以与下面的应用共享,但我解决它的方法是使用spa体系结构和库:。因此,就像每个应用程序注册为独立的一样,我可以有多个存储,对于会话变量,我使用了sessionStorage。

因此,我们的想法是这样做:


会话存储可以与下面的应用共享,但我解决它的方法是使用spa体系结构和库:。因此,就像每个应用程序注册为独立应用程序一样,我可以拥有多个存储,对于会话变量,我使用了sessionStorage。

虽然为应用程序创建多个存储不是最佳做法,但在某些情况下这是必要的。我在做一个遗留项目,Redux商店里全是意大利面条。应该处于本地状态的项通过在运行时添加的还原器在存储中,选择器是嵌套的混乱,值是随机不可变的还是不可变的。。。为了偿还技术债务,我们正在使用@reduxjs/toolkit创建一个新的商店,并慢慢地迁移过来。在这之前,我们需要两个存储区。虽然为应用程序创建多个存储区不是最佳做法,但在某些情况下这是必要的。我在做一个遗留项目,Redux商店里全是意大利面条。应该处于本地状态的项通过在运行时添加的还原器在存储中,选择器是嵌套的混乱,值是随机不可变的还是不可变的。。。为了偿还技术债务,我们正在使用@reduxjs/toolkit创建一个新的商店,并慢慢地迁移过来。在这之前,我们需要两个商店。
type MainProps = {
  onSession: boolean;
};

function Main({ onSession }: MainProps) {
return (
    <div>Has session? {onSession}</div>
)
}

const mapStateA = (state: AppStateA) => {
  return {
    filters: state.stateA.filters
  };
};

const mapStateB = (state: AppStateB) => {
  return {
    onSession: state.stateB.onSession
  };
};

const mapDispatchA = {};
const mapDispatchB = {};

export default compose(
  connect(mapStateA, mapDispatchA),
  connect(mapStateB, mapDispatchB)
)(Main);

import rootReducer from './slices/rootReducer';

const store = configureStore({
  reducer: rootReducer,
  middleware: [...getDefaultMiddleware()]
});

const storeContext = createContext<ReactReduxContextValue>({store, storeState: rootReducer});