Jonatas

improve MixinBuilder

... ... @@ -3,27 +3,7 @@ import 'package:flutter/widgets.dart';
import 'package:get/src/state_manager/rx/rx_interface.dart';
import 'rx_impl.dart';
Widget obx(Widget Function() builder) {
final b = builder;
return Obxx(b);
}
/// it's very very very very experimental
class Obxx extends StatelessWidget {
final Widget Function() builder;
Obxx(this.builder, {Key key}) : super(key: key);
final RxInterface _observer = Rx();
@override
Widget build(_) {
_observer.subject.stream.listen((data) => (_ as Element)..markNeedsBuild());
final observer = getObs;
getObs = _observer;
final result = builder();
getObs = observer;
return result;
}
}
/// The simplest reactive widget in GetX.
///
... ...
... ... @@ -36,6 +36,6 @@ class MixinBuilder<T extends GetxController> extends StatelessWidget {
id: id,
didChangeDependencies: didChangeDependencies,
didUpdateWidget: didUpdateWidget,
builder: (controller) => obx(() => builder.call(controller)));
builder: (controller) => Obx(() => builder.call(controller)));
}
}
... ...
... ... @@ -33,7 +33,7 @@ void main() {
child: Text("increment"),
onPressed: () => controller.increment(),
),
obx(() => Text(
Obx(() => Text(
'Obx: ${controller.map.value.length}',
))
]),
... ...