根据文件:
你有三种方法可以将一个变量变成一个“可观察的”。
1.第一个是使用Rx{Type}
。
// initial value is recommended, but not mandatory
final name = RxString('');
...
1.第二种是使用Rx
和使用Darts Generics,Rx<Type>
final name = Rx<String>('');
...
// Custom classes - it can be any class, literally
final user = Rx<User>();
1.第三种更实用、更简单、更受欢迎的方法是,将.obs
添加为value
的属性:
final name = ''.obs;
...
我如何决定在何种情况下应该采用何种方法来使用可观察量?
它们是否都导致完全相同的行为,只是语法不同?
1条答案
按热度按时间iovurdzv1#
Rx{Type}
和Rx<Type>
都是 Package 指定类型的值的类。Rx{Type}
使用工厂方法,而Rx<Type>
通过构造函数创建。.obs
可以用于任何值或对象,它返回适当类型的Rx对象。以下是三种情况下的使用提示:
.value
属性并传入新值来更新该值。Rx<Type>
。例如Rx<Car>
、Rx<Student>
等。Rx{Type}
。例如RxInt
、RxString
、RxList
等。.obs
。Rx{Type}
和Rx<Type>
的情况下,你可以用null
值初始化,但在.obs的情况下,你不能将null
值设置为obsetvables。总的来说,这些类的主要目的是使GetX的使用更简单,并为开发人员提供更多的选项。虽然这些类之间有一些细微的差异,但它们都是为了方便Flutter中的GetX响应式编程而设计的。