Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 为什么我们要在颤振阵营中使用Equalable?_Flutter_Dart_Bloc - Fatal编程技术网

Flutter 为什么我们要在颤振阵营中使用Equalable?

Flutter 为什么我们要在颤振阵营中使用Equalable?,flutter,dart,bloc,Flutter,Dart,Bloc,我知道equalable有助于比较对象的两个实例,而无需手动操作。 但我到底在哪里可以用它在颤振集团 以下是可均衡使用的示例: 它在哪里有用 abstract class TodosState extends Equatable { const TodosState(); @override List<Object> get props => []; } class TodosLoadInProgress extends TodosState {} class

我知道equalable有助于比较对象的两个实例,而无需手动操作。 但我到底在哪里可以用它在颤振集团

以下是可均衡使用的示例: 它在哪里有用

abstract class TodosState extends Equatable {
  const TodosState();

  @override
  List<Object> get props => [];
}

class TodosLoadInProgress extends TodosState {}

class TodosLoadSuccess extends TodosState {
  final List<Todo> todos;

  const TodosLoadSuccess([this.todos = const []]);

  @override
  List<Object> get props => [todos];

  @override
  String toString() => 'TodosLoadSuccess { todos: $todos }';
}

class TodosLoadFailure extends TodosState {}

我认为这对于比较BlocBuilder中的状态很有用。 下面的代码是使用Equatable的一个好例子

if(state is [Some State])

我认为这对于比较BlocBuilder中的状态很有用。 下面的代码是使用Equatable的一个好例子

if(state is [Some State])

当涉及到流时,对象和数据的比较总是很困难的,因为我们需要根据它来决定状态更新。 我们需要Equatable,因为它在内部重写==和hashCode,这节省了大量样板代码。在Bloc中,我们必须将equalable扩展到States和Events类才能使用此功能

 abstract class TodosState extends Equatable {}
因此,这意味着TodosState不会进行重复调用,如果出现相同的状态,也不会重新生成小部件

让我们看看Equatable中的道具用法以及它的特殊之处

定义不带道具的状态:

使用道具定义状态:

当我们希望将状态与props列表中声明的值进行比较时声明的props

class TodosLoadSuccess extends TodosState {
  final String name;
  final List<Todo> todos;
  const TodosLoadSuccess([this.name, this.todos = const []]);

   @override
   List<Object> get props => [name, todos];

 }

详细博客:

当涉及到流时,对象和数据比较总是很难做,因为我们需要根据它来决定状态更新。 我们需要Equatable,因为它在内部重写==和hashCode,这节省了大量样板代码。在Bloc中,我们必须将equalable扩展到States和Events类才能使用此功能

 abstract class TodosState extends Equatable {}
因此,这意味着TodosState不会进行重复调用,如果出现相同的状态,也不会重新生成小部件

让我们看看Equatable中的道具用法以及它的特殊之处

定义不带道具的状态:

使用道具定义状态:

当我们希望将状态与props列表中声明的值进行比较时声明的props

class TodosLoadSuccess extends TodosState {
  final String name;
  final List<Todo> todos;
  const TodosLoadSuccess([this.name, this.todos = const []]);

   @override
   List<Object> get props => [name, todos];

 }

详细博客:

也许这是给你的答案:也许这是给你的答案: