mobx_widget 0.1.0 copy "mobx_widget: ^0.1.0" to clipboard
mobx_widget: ^0.1.0 copied to clipboard

outdated

If you use ObservableFuture or ObservableStream, maybe you should be considering to use some helpers widgets in your project, like ObserverFutureWidget or ObserverStreamWidget from this package.

ObserverFutureWidget - A simple Widget to handle MobX ObservableFuture events. #

Example usage #

add dependency to pubspec.yaml

  mobx_widget:
    git: https://github.com/emanuel-braz/mobx_widget.git

 OR

  dependencies:
    mobx_widget: ^0.1.0
import 'package:mobx_widget/mobx_widget.dart';

Create the ObservableFuture

class MyStore {

  ...

  MyStore(){
    fetchData();
  }
  
  @observable
  ObservableFuture<String> myObservableFuture;
  
  @action
  Future<String> fetchData() async {
    return await (myObservableFuture = ObservableFuture( _repository.fetch() ));
  }
}

With Future (ObservableFuture)

...

ObserverFutureWidget(
  observableFuture: () => myStore.myObservableFuture,
  onResult: (_, data) => MyCustomDataWidget(data: data),
  onResultNull: (_) => Center(child: Text('Oops! No connection.')),
  onPending: (_) => CircularProgressIndicator(),
  onError: (_) => MyCustomErrorReloaderWidget(),
);

With Stream (ObservableStream)

...

ObserverStreamWidget(
  observableStream: () => myObservableStream,
  onData: (_, data) => Text('$data'),
  onNull: (_) => Text('NULL'),
  onUnstarted: (_) => Text('UNSTARTED'),
  onError: (_, error) => Text('ERROR: ' + error.toString())
)

TODO #

  • add example
  • add unit test
  • add widget test
16
likes
0
pub points
81%
popularity

Publisher

unverified uploader

If you use ObservableFuture or ObservableStream, maybe you should be considering to use some helpers widgets in your project, like ObserverFutureWidget or ObserverStreamWidget from this package.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter, flutter_mobx, mobx

More

Packages that depend on mobx_widget