首页 > 解决方案 > Dart 对从概念上改变属性的操作使用 setter

问题描述

在下面的代码中,当我尝试设置值以ValueNotifier获取分析信息时,

info: Use a setter for operations that conceptually change a property. (use_setters_to_change_properties at 
[XXXXX] lib\service\providers\value_notifier_scroll_to_selected_page_position.dart:6) 

我的代码:

class ScrollToSelectedPagePosition {
  final ValueNotifier<int> position = ValueNotifier<int>(0);

  void scrollToPosition(int selectedPagePosition){
    position.value = selectedPagePosition; // <--- Getting info here
  }
}

我如何为此定义setter?

标签: flutterdartanalytics

解决方案


我想它希望你这样做:

set scrollToPosition(int selectedPagePosition) {
  position.value = selectedPagePosition;
}

然后调用者将使用scrollToPosition = position而不是scrollToPosition(position).

假设scrollToPosition()执行一些滚动操作,我个人更喜欢它看起来像一个函数调用,我会用

// ignore: use_setters_to_change_properties

(但是,如果它被命名为position,那么 setter 可能更合适。)


推荐阅读