rx_dartx

A reactive system using rxdart with RxVar, RxController and ObRx.

Usage

1. Create reactive variables

import 'package:rx_state/rx_state.dart';

final count = RxVar<int>(0);

2. Use a controller

class CounterController extends RxController {
  final count = RxVar<int>(0);

  void increment() => count.value++;
}

3. Bind to UI with ObRx

controller.ever(controller.count, (value) {
  print('Count changed: $value');
});

4. Bind to UI with ObRx

controller.ever(controller.count, (value) {
  print('Count changed: $value');
});

Example

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

class CounterController extends RxController {
  final count = RxVar<int>(0);

  void increment() => count.value++;
}

final controller = CounterController();

class CounterApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: ObRx(
            listenTo: [controller.count],
            builder: () => Text('Count: ${controller.count.value}'),
          ),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: controller.increment,
          child: Icon(Icons.add),
        ),
      ),
    );
  }
}