如何使用React Context在组件之间共享Mobx-State-Tree存储

时间:2019-06-26 21:40:08

标签: javascript reactjs mobx-react mobx-state-tree

我目前正在使用Mobx-State-Tree来管理我的React应用程序中表单的所有状态。我面临的问题是,我想按照原子设计在表单的页面级创建商店,并通过React Context将商店传递给必要的组件,但我想避免将子组件包装在{来自<Observer>的{​​1}}标签,或者在我的孩子身上有某种自定义包装器,这些包装器消耗了商店并将其作为道具传递给孩子。

这周围必须有最佳实践吗? Mobx-react文档指出:

可以通过使用Mobx-react上下文(可以从Provider导入)来使用React.useContext来读取MobXProviderContext提供的商店。

但是,我找不到任何示例或解释如何最好地实现mobx-react?我当前的设置如下(大大简化了演示过程):

MobXProviderContext

我最终对如何避免子组件上的嵌套感兴趣?我应该如何构造子组件?我正在应用的情况是表单的状态管理,因此商店数据会不断更新,因此至关重要的是,孩子要观察商店中值的任何更新。

希望如此,并非常感谢任何有关如何最好地实现这一目标的指导!

1 个答案:

答案 0 :(得分:0)

请使用inject将存储注入到您的组件中。您也可以建立自己的提供程序,以将商店传递给所有孩子。