我有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/

10-12 02:54