MobX 实现 Flutter 多组件的状态共享

前言

前面3篇我们介绍了 MobX 的概念和使用, MobX 使用起来确实很简单,也很高效。但是, MobX 也有一个缺陷,那就是如果状态数据要共享的时候,我们并不能像 Provider 或 Redux 那样将状态对象提升到共同上级组件来完成。还是以点赞和收藏按钮的界面为例。两个按钮是独立的组件,点击时都会增加对应的数量,两个组件共享一个状态对象。

image.png

MobX 共享方式一:逐级传递

由于 MobX 本身不支持上级组件状态可以被下级组件共享,因此我们想到的最简单的方式就是将状态对象传递给下级组件。

class DynamicDetailWrapper extends StatelessWidget {
  final store = ShareStore();
  DynamicDetailWrapper({Key? key}) : super(key: key);
  
  @override
  Widget build(BuildContext context) {
    //...
    		children: [
          _PraiseButton(store: store),
          _FavorButton(store: store),
        ],
  }
}

class _FavorButton extends StatelessWidget {
  final ShareStore store;
  const _FavorButton({Key? key, required this.store}) : super(key: ke

猜你喜欢

转载自blog.csdn.net/shuijian00/article/details/123300412