rx_command 5.1.0+test copy "rx_command: ^5.1.0+test" to clipboard
rx_command: ^5.1.0+test copied to clipboard

outdated

Reactive event handler wrapper class inspired by ReactiveUI.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:meta/meta.dart';

import 'homepage.dart';
import 'weather_viewmodel.dart';

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

class MyApp extends StatefulWidget {
  // This widget is the root of your application.

  @override
  MyAppState createState() {
    return MyAppState();
  }
}

class MyAppState extends State<MyApp> {
  WeatherViewModel viewModelData;

  @override
  void initState() {
    viewModelData = WeatherViewModel();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    // Place the Inherited Widget at the very base of the Widget tree
    return TheViewModel(
      theModel: viewModelData,
      child: MaterialApp(title: 'Flutter Demo', home: HomePage()),
    );
  }
}

// InheritedWidgets allow you to propagate values down the widgettree.
// it can then be accessed by just writing  TheViewModel.of(context)
class TheViewModel extends InheritedWidget {
  final WeatherViewModel theModel;

  const TheViewModel({Key key, @required this.theModel, @required Widget child})
      : assert(theModel != null),
        assert(child != null),
        super(key: key, child: child);

  static WeatherViewModel of(BuildContext context) =>
      context.dependOnInheritedWidgetOfExactType<TheViewModel>().theModel;

  @override
  bool updateShouldNotify(TheViewModel oldWidget) =>
      theModel != oldWidget.theModel;
}
45
likes
0
pub points
84%
popularity

Publisher

verified publisherfluttercommunity.dev

Reactive event handler wrapper class inspired by ReactiveUI.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

quiver_hashcode, rxdart

More

Packages that depend on rx_command