Флаттер заморожен Расчетное значение по умолчанию

Мне нужно иметь вычисленное значение в freezed класс

        factory MyState({
    ///....
    @Default(UniqueKey()) UniqueKey key,
  }) = _MyState;

Это не разрешено. Как я могу это обойти. Об установке его в inital() не может быть и речи.

Спасибо

1 ответ

Решение

Хотя я не знаю, является ли это идиоматикой, следующий фрагмент должен предоставить вам решение:

      factory MyState._internal({
  UniqueKey key,
}) = _MyState;

factory MyState({
  UniqueKey? key,
}) {
  return MyState._internal(key: key ?? UniqueKey());
}
Другие вопросы по тегам