在下面的这段代码中,当我尝试将值设置为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
  }
}

我该如何定义二传手?

最佳答案

我想它希望您这样做:

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

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

假设scrollToPosition()执行一些滚动操作,就我个人而言,我更喜欢它看起来像一个函数调用,并且我使用
// ignore: use_setters_to_change_properties

(但是,如果将其命名为position,则setter可能更合适。)

09-25 21:14