前言
前面3篇我们介绍了 MobX 的概念和使用, MobX 使用起来确实很简单,也很高效。但是, MobX 也有一个缺陷,那就是如果状态数据要共享的时候,我们并不能像 Provider 或 Redux 那样将状态对象提升到共同上级组件来完成。还是以点赞和收藏按钮的界面为例。两个按钮是独立的组件,点击时都会增加对应的数量,两个组件共享一个状态对象。
MobX 共享方式一:逐级传递
由于 MobX 本身不支持上级组件状态可以被下级组件共享,因此我们想到的最简单的方式就是将状态对象传递给下级组件。
class DynamicDetailWrapper extends StatelessWidget {
final store = ShareStore();
DynamicDetailWrapper({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
//...
children: [
_PraiseButton(store: store