在 Mobx 中,一个复杂的组件可以拥有自己的商店吗?

In Mobx can a complex component have it's own store?

我构建了一个复杂的日期管理组件,它本身由许多嵌套在几层深处的小组件组成。不同级别的组件需要访问存在于根组件中的可观察对象和操作。我正在通过道具传递我需要的东西来处理这个问题。虽然这一切都有效,但如果我可以在根组件中创建一个商店,使用提供程序,然后根据需要注入子组件,代码会更简单、更容易理解。就像我们在创建应用程序广泛使用的商店时所做的那样。

总结一下...

我希望我的复杂日期组件的每个实例都创建它自己的商店实例。然后我想使用 provider 和 inject 将这个商店实例传递给子组件。

在我继续进行这一重大重构之前,我想确保这种方法有效且可靠。是否有更有意义的替代方法。我是不是忽略了什么?

注意:虽然我知道代码示例很有用,但我希望我所描述的内容足够直接,在这种情况下不需要它们。

是的,您可以为组件创建商店并使用 Providerinject 将它们传递给子组件。实际上这就是我在当前项目中所做的并且效果很好。

顺便说一句,我认为与 Redux 相比,这是 MobX 的一大优点。您不需要将所有状态都保存在一个全局存储中。您可以创建自己完美运行的复杂组件。它是面向对象的,这就是React的哲学。