Flutter mobx可观测数据能否在多个屏幕之间保持?
我有一个mobx类,它存储一个可观察的命名值和一个名为increment的操作,我也有两个屏幕,如果我在第一个屏幕上增加可观察值,我希望它在第二个屏幕上改变,但是如果我改变屏幕,值总是重新启动 在react native中使用mobx时,它曾经对我起作用,即使我更改了屏幕,所有屏幕中的状态都会更新,但在Flatter中它不起作用 Mobx类Flutter mobx可观测数据能否在多个屏幕之间保持?,flutter,mobx,Flutter,Mobx,我有一个mobx类,它存储一个可观察的命名值和一个名为increment的操作,我也有两个屏幕,如果我在第一个屏幕上增加可观察值,我希望它在第二个屏幕上改变,但是如果我改变屏幕,值总是重新启动 在react native中使用mobx时,它曾经对我起作用,即使我更改了屏幕,所有屏幕中的状态都会更新,但在Flatter中它不起作用 Mobx类 import 'package:mobx/mobx.dart'; part 'appstores.g.dart'; class AppStore = _A
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++;
}
}
屏幕1
// 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中,您试图通过store.addToOrders()方法更新到store.x值,该方法在store类中不作为方法出现,它只包含一个增量方法。我不喜欢颤振,但似乎您正在为每个屏幕实例化AppStore。看看如何将AppStore作为单例实例,这样您的数据就会持久化。您找到答案了吗?@laszlo我使用了继承的小部件
// but not here
Observer(
builder: (_) => Text('orders ${store.x}',
style: new TextStyle(
fontSize: 15,
color: Colors.grey,
)),
),