javascript - 在一个应用程序中拥有两个 redux 存储
问题描述
我有一个 react-native 应用程序,其中包含两个应用程序。这两个部分有自己的 UI 和状态。当用户打开想要注册的应用程序时,他们可以选择他们想如何使用这个应用程序。
我喜欢将这两个部分相互封装。
我的想法是有两个提供者并有条件地呈现它们,但不知道这是一个好习惯并且有没有任何边缘情况。
const rule = 'first' // or 'second'
rule === 'first' ?
<Provider store={firstStore}>
// first app related screens
</Provider>
:
<Provider store={secondStore}>
// second app related screens
</Provider>
谁能完美封装这两个部分的状态?
解决方案
分离 UI 和数据是一个好主意。但是,您不能有两个提供者,您需要将它们放入 2 个单独的减速器中。所以,你可以有这样的东西(代码只是一个简短的例子,你当然会用你自己的替换)。
import { combineReducers } from 'redux';
import carousels from './dataCarouselsReducer';
import filterIntents from './filterIntents';
import generatedImages from './generatedImages';
import indexing from './indexing';
import { nlpIntentsReducer } from './nlpIntents';
import nullSpaceData from './nullSpaceData';
import { searchReducer } from './search';
import similarityIntents from './similarityFilterIntents';
import uiCarouselsReducer from './uiCarouselsReducer';
import user from './user';
import workflows from './workflows';
const rootReducer = combineReducers({
data: {
user,
search: searchReducer,
nullSpaceData,
similarityIntents,
carousels,
indexing,
generatedImages,
workflows,
},
ui: {
filterIntents,
nlpIntents: nlpIntentsReducer,
uiCarouselsReducer,
},
});
export default rootReducer;
推荐阅读
- ios - Swift 组合错误:“Publisher”上的方法需要 .Failure(又名“WeatherError”)和“Never”等价
- python - 检查是否允许机器人在频道 discord.py 中发送和阅读消息
- r - 如何加密同一文件夹中的所有 Excel 工作簿?
- ruby-on-rails - 如何使类对 RSpec 测试文件可见?
- node.js - 缺少 nodemailer 'From' 标头
- arrays - Julia:大型稀疏矩阵的所有特征值
- heroku - Heroku 上传时出现“无法解析 Procfile”错误
- java - 需要帮助修复 Java 项目中的错误
- angular - 模态不会在页面加载时打开
- python - 条件/依赖函数参数 - Python