基于另一个商店初始化商店并将它们都放入的最佳实践是什么Provider
?我有一家名为它的商店AuthManager
,它拥有一个名为user
. 我还有另一家商店叫GoalManager
. 我需要初始化的user
属性。我想这样构造:AuthManager
GoalManager
GoalManager
const goalManager = new GoalManager(user);
但是以后不可能在 react 的上下文中添加一些东西,因为有些孩子无法根据上下文的变化进行更新!我通过将AuthManager
实例发送到GoalManager
的构造函数解决了这个问题,但我不喜欢它:
// services.js
const authManager = new AuthManager();
const goalManager = new GoalManager(authManager);
export default {
authManager,
goalManager
}
然后:
// index.jsx
import services from './services';
render(`
<Provider {...services}>
<App />
</Provider>`, mountPoint);
我不喜欢这个解决方案,因为我不得不依赖GoalManager
但AuthManager
它只依赖于AuthManager.user
. 然后测试GoalManager
更难(因为你必须模拟一个大对象)。
有没有更好的解决方案?