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

outdated

ObserverFuture, ObserverStream and ObserverText Widget - A simple way to consume MobX Observables through widgets. You can find a sort of widgets.

example/lib/main.dart

import 'package:example/my_custom_widget.dart';
import 'package:example/my_store.dart';
import 'package:flutter/material.dart';
import 'package:mobx_widget/mobx_widget.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'MobX Widget Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'MobX Widget Demo'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  MyStore myStore;

  @override
  void initState() {
    super.initState();
    myStore = MyStore();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Container(
        alignment: Alignment.center,
        child: DefaultTextStyle(
          textAlign: TextAlign.center,
          style: TextStyle(fontSize: 20, color: Colors.blue),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.center,
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              Text(
                'ObservableStream:',
              ),
              ObserverStream<String, String>(
                // Use this widget to handle ObservableStream events
                observableStream: () => myStore.observableStream,
                onData: (_, data) => Text('DATA: $data'),
                onNull: (_) => Text('NULL'),
                onUnstarted: (_) => Text('UNSTARTED'),
                onError: (_, error) => Text('ERROR: ' + error),
              ),
              SizedBox(
                height: 16,
              ),
              Divider(),
              ObserverText(
                onData: (_) => 'ObserverText:\n${myStore.text}',
                // style: Theme.of(context).textTheme.bodyText1,
              ),
              SizedBox(
                height: 16,
              ),
              Divider(),
              Text(
                'ObservableFuture:',
              ),
              ObserverFuture<String, Exception>(
                // Use this widget to handle ObservableFuture events
                observableFuture: () => myStore.observableFuture,
                onData: (_, data) => Text('DATA: $data'),
                onNull: (_) => Text('NULL'),
                onError: (_, error) => Text('${error.toString()}'),
                onPending: (_) => Text('PENDING'),
                onUnstarted: (_) => Text('UNSTARTED'),
              ),
              SizedBox(
                height: 16,
              ),
              Divider(),
              Text(
                'MyCustomObserverFuture:',
              ),
              MyCustomObserverFutureWidget(
                observableFuture: () => myStore.observableFuture,
                onData: (_, data) => Text('😍'),
              )
            ],
          ),
        ),
      ),
    );
  }

  @override
  void dispose() {
    myStore.dispose();
    super.dispose();
  }
}
16
likes
0
pub points
83%
popularity

Publisher

unverified uploader

ObserverFuture, ObserverStream and ObserverText Widget - A simple way to consume MobX Observables through widgets. You can find a sort of widgets.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter, flutter_mobx, mobx

More

Packages that depend on mobx_widget