我有Android开发背景,正在学习Flutter。
在Android中,通常的做法是使用Kotlin密封类从ViewModel返回状态,例如
sealed class MyState {
data class Success(val data: List<MyObject>) : MyState()
data class Error(val error: String) : MyState()
}
我想在Flutter中使用类似的模式,并从BLOC类返回一个State对象。在Flutter中实现相同效果的最佳方法是什么?
最佳答案
这样的用例将使用命名工厂构造函数来完成。
它需要很多代码,但是行为是相同的。
class MyState {
MyState._();
factory MyState.success(String foo) = MySuccessState;
factory MyState.error(String foo) = MyErrorState;
}
class MyErrorState extends MyState {
MyErrorState(this.msg): super._();
final String msg;
}
class MySuccessState extends MyState {
MySuccessState(this.value): super._();
final String value;
}
关于dart - Dart 2.0中是否有任何密封类替代品?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54317000/