Замораживание пакета приводит к ошибке, не допускающей значения NULL, при генерации кода


Я запускаю проект и решил использовать новую версию ** Freezed ** для своих моделей, но когда я запускаю flutter *pub run build_runner build * для генерации кода, я получаю следующую ошибку:
> Параметр 'placeFormattedAddress' of 'Address' не является нулевым, но не является обязательным и не отмечен @Default
> Я импортирую пакет ** Meta **, а также включаю аннотацию * @ required *; Самое забавное, что когда я меняю параметры с именованных на позиционные (без фигурных скобок, это хорошо работает).
Вот код ¿Кто-нибудь может указать мне, что не так?
** Вот класс **
      import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:flutter/foundation.dart';

part 'address.freezed.dart';
part 'address.g.dart';

@freezed
class Address with _$Address {
   const factory Address({
         @required String placeFormattedAddress, @required String placeName, @required String 
         placeId,@required double latitude, @required double longitude,}) = _Address;

    factory Address.fromJson(Map<String, dynamic> json) =>_$AddressFromJson(json);}

Вот мой pubspec.yaml

      publish_to: 'none'

version: 1.0.0+1

environment:
  sdk: ">=2.12.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  
  freezed_annotation: ^0.14.1
  json_serializable: ^4.1.0
  flutter_hooks: ^0.16.0
  hooks_riverpod: ^0.13.1

dev_dependencies:
  flutter_test:
    sdk: flutter
  lint: ^1.0.0
  build_runner:
  freezed: ^0.14.1+2

1 ответ

Я наконец нашел ответ; с нулевым безопасным дротиком @ больше не требуется для обозначения обязательного параметра; поэтому вместо @required теперь требуется только синтаксис

Когда нулевой безопасный код вызывается из устаревшего кода, ключевое слово required обрабатывается точно так же, как аннотация @required: отсутствие аргумента вызовет подсказку анализатора.

https://dart.dev/null-safety/faq

Другие вопросы по тегам