【问题标题】:Flutter BLOC Equatable | exception for some variableFlutter BLOC Equatable |某些变量的例外
【发布时间】:2021-09-20 06:22:04
【问题描述】:

如何排除等价类中的一些变量成员不被比较?

class MyBlocState extends Equatable {

  LocationPermission locationPermission;
  final LatLng position;

  NavigationState({

    this.locationPermission,
    this.position,
});

MyBlocState copyWith({
  LocationPermission locationPermission,
  LatLng position
}) {
 locationPermission : locationPermission ?? this. locationPermission,
 position : position ?? this. position
}

@override
List<object> get props => [
 locationPermission,
 position
];

我希望检查变量位置是否相等,但不检查 locationPermission,因此在状态小部件中即使结果相同,它仍然可以返回状态,因为即使用户给出相同的响应,我也需要捕获用户响应

【问题讨论】:

    标签: flutter flutter-bloc


    【解决方案1】:

    只需从get props 中删除locationPermission

    class MyBlocState extends Equatable {
    
      LocationPermission locationPermission;
      final LatLng position;
    
      NavigationState({
    
        this.locationPermission,
        this.position,
    });
    
    MyBlocState copyWith({
      LocationPermission locationPermission,
      LatLng position
    }) {
     locationPermission : locationPermission ?? this. locationPermission,
     position : position ?? this. position
    }
    
    @override
    List<object> get props => [
     position
    ];
    

    【讨论】:

    • 状态还没更新,不行
    猜你喜欢
    • 2021-12-14
    • 2021-12-06
    • 2021-11-26
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 2023-01-18
    • 2021-03-20
    • 2021-03-19
    相关资源
    最近更新 更多