#flutter #dart
#flutter #dart
Вопрос:
Запуск build runner в следующем коде выдает ошибку
@freezed
abstract class Person implements _$Person {
const Person._(); // Added constructor
int _readCount = 0;
factory Person({ String name, int age }) = _Person;
getPrivatVar(){ return _readCount }
}
Классы, оформленные с помощью @freezed, не могут иметь изменяемых свойств
Но _readCount является частным свойством. Почему он также проверяет частную пропретность. Как это исправить?
Ответ №1:
Freezed говорит о себе:
Генерация кода для неизменяемых классов с простым синтаксисом / API без ущерба для функций.
Акцент мой. Неизменяемые классы. Ваш класс не является неизменяемым, у него есть состояние. Не имеет значения, является ли ваше состояние общедоступным или частным, оно все равно изменяемо.
Вы можете исправить это, удалив частное состояние из своего класса.
Комментарии:
1. Но вы можете использовать
copyWith
функцию для создания новой копии с измененными общедоступными свойствами.