Mobx可观察的数据可以在多个屏幕之间保留吗?

时间:2019-05-24 14:43:30

标签: flutter mobx

我有一个mobx类,它存储一个可观察的命名值和一个名为增量的动作,我也有2个屏幕,并且如果我在第一个屏幕上递增它的值,我希望在第二个屏幕上改变可观察值的值如果我换了屏幕,总是重启。

过去,我使用mobx在react native中以这种方式为我工作,即使我更改了屏幕,所有屏幕的状态也都更新了,但在颤动中却无法正常工作。

Mobx类

echo do_shortcode('[products ids="' . $id . '" visibility="all"]');

屏幕1

import 'package:mobx/mobx.dart';
part 'appstores.g.dart';

class AppStore = _AppStore with _$AppStore;

abstract class _AppStore with Store {
  @observable
  int x = 0;

  @action
  void increment() {
    x++;
  }
}

屏幕2

// the x value updates here
 Observer(
                    builder: (_) => Text("${store.x}"),
                  ),
                  ButtonBar(
                    children: <Widget>[
                       RaisedButton(
                          onPressed: (){store.addToOrders();},
                          child: Text('Disabled Button',
                              style: TextStyle(fontSize: 20))),
                    ],
                  ),

我希望可观察x的值在所有屏幕上都改变,而我在其中一个屏幕中将其递增。我该如何实现?

1 个答案:

答案 0 :(得分:0)

我对Flutter一无所知,在这种情况下,我的注释可能毫无用处,但是我从您的代码中可以看到,在屏幕1中,您试图通过商店更新为store.x值。在商店类中没有显示为方法的addToOrders()方法,该类仅包含一个增量方法。