Showing
1 changed file
with
11 additions
and
21 deletions
1 | import 'package:flutter/widgets.dart'; | 1 | import 'package:flutter/widgets.dart'; |
2 | import 'package:get_instance/get_instance.dart'; | 2 | import 'package:get_instance/get_instance.dart'; |
3 | +import '../rx_flutter/rx_disposable.dart'; | ||
3 | 4 | ||
4 | /// GetView is a great way of quickly access your Controller | 5 | /// GetView is a great way of quickly access your Controller |
5 | /// without having to call Get.find<AwesomeController>() yourself. | 6 | /// without having to call Get.find<AwesomeController>() yourself. |
@@ -38,7 +39,8 @@ abstract class GetView<T> extends StatelessWidget { | @@ -38,7 +39,8 @@ abstract class GetView<T> extends StatelessWidget { | ||
38 | Widget build(BuildContext context); | 39 | Widget build(BuildContext context); |
39 | } | 40 | } |
40 | 41 | ||
41 | -abstract class GetWidget<T extends GetLifeCycle> extends GetStatelessWidget { | 42 | +abstract class GetWidget<T extends DisposableInterface> |
43 | + extends GetStatelessWidget { | ||
42 | GetWidget({Key key}) : super(key: key); | 44 | GetWidget({Key key}) : super(key: key); |
43 | 45 | ||
44 | final Set<T> _value = <T>{}; | 46 | final Set<T> _value = <T>{}; |
@@ -50,10 +52,6 @@ abstract class GetWidget<T extends GetLifeCycle> extends GetStatelessWidget { | @@ -50,10 +52,6 @@ abstract class GetWidget<T extends GetLifeCycle> extends GetStatelessWidget { | ||
50 | return _value.first; | 52 | return _value.first; |
51 | } | 53 | } |
52 | 54 | ||
53 | - // void restartChilds(){ | ||
54 | - | ||
55 | - // } | ||
56 | - | ||
57 | @override | 55 | @override |
58 | Widget build(BuildContext context); | 56 | Widget build(BuildContext context); |
59 | } | 57 | } |
@@ -93,33 +91,25 @@ class GetStatelessElement extends ComponentElement { | @@ -93,33 +91,25 @@ class GetStatelessElement extends ComponentElement { | ||
93 | rebuild(); | 91 | rebuild(); |
94 | } | 92 | } |
95 | 93 | ||
96 | - void forceAppUpdate() { | ||
97 | - void restart(Element element) { | ||
98 | - element.markNeedsBuild(); | ||
99 | - element.rebuild(); | ||
100 | - element.visitChildren(restart); | ||
101 | - } | ||
102 | - | ||
103 | - markNeedsBuild(); | ||
104 | - rebuild(); | ||
105 | - | ||
106 | - visitChildren(restart); | ||
107 | - } | ||
108 | - | ||
109 | @override | 94 | @override |
110 | void mount(Element parent, dynamic newSlot) { | 95 | void mount(Element parent, dynamic newSlot) { |
111 | - widget.controller?.onStart(); | 96 | + if (widget?.controller?.initialized != null && |
97 | + !widget.controller.initialized) { | ||
98 | + widget?.controller?.onStart(); | ||
99 | + } | ||
100 | + | ||
112 | super.mount(parent, newSlot); | 101 | super.mount(parent, newSlot); |
113 | } | 102 | } |
114 | 103 | ||
115 | @override | 104 | @override |
116 | void unmount() { | 105 | void unmount() { |
117 | - widget.controller?.onClose(); | 106 | + widget?.controller?.onClose(); |
118 | super.unmount(); | 107 | super.unmount(); |
119 | } | 108 | } |
120 | } | 109 | } |
121 | 110 | ||
122 | -abstract class GetStatelessWidget<T extends GetLifeCycle> extends Widget { | 111 | +abstract class GetStatelessWidget<T extends DisposableInterface> |
112 | + extends Widget { | ||
123 | const GetStatelessWidget({Key key}) : super(key: key); | 113 | const GetStatelessWidget({Key key}) : super(key: key); |
124 | @override | 114 | @override |
125 | GetStatelessElement createElement() => GetStatelessElement(this); | 115 | GetStatelessElement createElement() => GetStatelessElement(this); |
-
Please register or login to post a comment