Могут ли наблюдаемые данные mobx сохраняться между несколькими экранами? - PullRequest
0 голосов
/ 24 мая 2019

У меня есть класс mobx, в котором хранится наблюдаемое именованное значение и действие с именем increment, у меня также есть 2 экрана, и я хочу, чтобы значение наблюдаемого изменилось на втором экране, если я увеличу его на первом экране, но значение всегда перезагружать, если я меняю экран.

Раньше у меня так получалось, используя mobx в реагировать на натив, даже если я меняю экран, состояние обновляется на всех экранах, но во флаттере это не работает.

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

Я хочу, чтобы значение наблюдаемого x менялось на всех скринах, и я увеличиваю его на одном из экранов. Как я могу достичь этого?

1 Ответ

0 голосов
/ 26 мая 2019

Я ничего не знаю о Flutter, в этом случае мой комментарий может оказаться бесполезным, но то, что я вижу по вашему коду, на вашем экране 1, вы пытаетесь обновить значение store.x через хранилище. Метод addToOrders (), который не отображается как метод в вашем классе хранилища, который содержит только метод приращения.

...