基于另一个商店初始化商店并将它们都放入的最佳实践是什么Provider?我有一家名为它的商店AuthManager,它拥有一个名为user. 我还有另一家商店叫GoalManager. 我需要初始化的user属性。我想这样构造:AuthManagerGoalManagerGoalManager
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更难(因为你必须模拟一个大对象)。
有没有更好的解决方案?