Я прорабатываю многие учебники по блоку с флаттером и сталкиваюсь с некоторыми несоответствиями.
Я использую студию Android и создаю код блока с помощью плагина от Intellij v1.6.0.
Для bloc_event я продолжаю видеть такие примеры.
@immutable
abstract class FruitEvent extends Equatable {
FruitEvent([List props = const []]) : super(props);
}
Когда я генерирую свои файлы блока и смотрю на исходный файл _event, который сгенерирован, он выглядит следующим образом.
@immutable
abstract class SongEvent extends Equatable {
const SongEvent();
}
Если я изменю свой сгенерированный код, включив в него следующее ...
[List props = const []]) : super(props)
Затем я получаю следующую ошибку «Слишком много позиционных аргументов, 0 ожидалось, 1 найден», которая ссылается на реквизиты в конце строки, показанной выше.
Если я оставлю свой код в том виде, в каком он был сгенерирован плагином блока, а затем попытаюсь реализовать свои события, добавив следующие ...
class AddSong extends SongEvent {}
Затем я получаю сообщение об ошибке «Отсутствует конкретная реализация getter Equatable.props».
Вот мой текущий блок / song_event.dart
import 'package:equatable/equatable.dart';
import 'package:meta/meta.dart';
@immutable
abstract class SongEvent extends Equatable {
const SongEvent();
}
class AddSong extends SongEvent {}
Вопрос. Следует ли использовать строку, в которой есть свойства, как показано в примере FuitEvent?
Я не понимаю, что мне здесь не хватает и почему отображается ошибка, когда я пытаюсь использовать тот же метод, который показан во многих учебных пособиях.