我构建了一个复杂的日期管理组件,该组件本身由嵌套在几层深处的许多较小的组件组成。不同级别的组件需要访问根组件中存在的可观察对象和操作。我正在通过道具传递我需要的东西。尽管这一切都可行,但是如果我可以在根组件中创建存储,使用提供程序,然后根据需要注入子组件,则代码将更加简单易懂。就像我们创建商店以供广泛使用时所做的一样。
所以总结一下……
我希望复杂日期组件的每个实例都可以创建自己的商店实例。然后,我想使用provider并注入以将此商店实例传递给子组件。
在继续进行重要的重构之前,我想确定这种方法是否有效。是否有更有意义的替代方法。我在俯视什么吗?
注意:尽管我知道代码示例很有用,但我希望所描述的内容很直接,以至于在这种情况下不需要它们。
答案 0 :(得分:1)
是的,您可以为组件创建存储,并使用Provider
和inject
将它们传递给子组件。实际上,这就是我在当前项目中所做的,并且效果很好。
顺便说一句,与Redux相比,我认为这是MobX的重要Pro。您无需将所有状态都保留在一个全局存储中。您可以创建自己可以完美运行的复杂组件。它是面向对象的,这是React的理念。