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});