Dart Используйте сеттер для операций, которые концептуально изменяют свойство - PullRequest
0 голосов
/ 08 апреля 2020

в этом коде ниже, когда я пытаюсь установить значение 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
  }
}

как я могу определить установщик для что?

1 Ответ

1 голос
/ 08 апреля 2020

Я полагаю, он хочет, чтобы вы сделали:

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

, и тогда вызывающие абоненты будут использовать scrollToPosition = position вместо scrollToPosition(position).

Предполагая, что scrollToPosition() выполняет некоторое действие прокрутки, лично я предпочитаю, чтобы это выглядело как вызов функции, и я бы подавил пух с помощью

// ignore: use_setters_to_change_properties

(однако, если бы он был назван position, установщик мог бы быть более подходящим.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...