gpt4 book ai didi

flutter - mobx 可观察数据可以在多个屏幕之间保持吗?

转载 作者:行者123 更新时间:2023-12-04 13:58:38 26 4
gpt4 key购买 nike

我有一个 mobx 类,它存储一个可观察的命名值和一个名为 increment 的 Action ,我也有 2 个屏幕,如果我在第一个屏幕上增加它,我希望在第二个屏幕上更改 observable 的值,但如果该值总是重新启动我换了个屏幕。

它曾经在 react native 中使用 mobx 对我有用,即使我更改屏幕,所有屏幕中的状态都会更新,但在 flutter 中它不会那样工作。

Mobx 类

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))),
],
),

屏幕 2
// but not here
Observer(
builder: (_) => Text('orders ${store.x}',
style: new TextStyle(
fontSize: 15,
color: Colors.grey,
)),
),

我希望 observable x 的值在所有屏幕上都发生变化,我在其中一个屏幕中增加它。我怎样才能做到这一点?

最佳答案

您正在每个屏幕中实例化不同的商店。
我认为使用相同实例的最佳方法是作为单例注入(inject)。我正在使用 getIt并注入(inject)我使用 registerLazySingleton 方法

getIt.registerLazySingleton(() => MyStore());
要在每个屏幕上访问它,您可以执行以下操作:
final store = getIt<MyStore>();

关于flutter - mobx 可观察数据可以在多个屏幕之间保持吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56294931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com