我有一个react原生应用程序,其中包含两个应用程序。这两个部分有自己的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和数据是个好主意。不过,你不能有两个提供者,你需要把它们放在两个单独的减速器中。所以,你可以有这样的东西(代码只是一个简单的例子,当然你可以用自己的代码替换(。
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;