首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flutter : freezed或标记为@Default

flutter : freezed或标记为@Default
EN

Stack Overflow用户
提问于 2021-09-07 13:47:26
回答 1查看 365关注 0票数 0

我正尝试在我的应用程序上使用freezed,所以我添加了

代码语言:javascript
复制
environment:
  sdk: ">=2.7.0<3.0.0"

  freezed: ^0.14.0
  freezed_annotation: ^0.14.0

对我的依赖。

代码语言:javascript
复制
dev_dependencies:
  freezed_annotation: ^0.12.0
  build_runner:  ^2.0.1
  retrofit_generator:
  flutter_localizations:
    sdk: flutter
  flutter_test:
    sdk: flutter

在那之后,我创建了简单的冻结类:

代码语言:javascript
复制
import 'package:freezed_annotation/freezed_annotation.dart';

part 'chart_daily_expanded_detailes_model.freezed.dart';

@freezed
abstract class ChartDailyExpandedDetailesModel
    with _$ChartDailyExpandedDetailesModel {
  const factory ChartDailyExpandedDetailesModel({
    String title,
    String testNumber,
    String testPercentage,
    String icon,
  }) = _ChartDailyExpandedDetailesModel;
}

但是我得到了这个错误:

代码语言:javascript
复制
[SEVERE] freezed:freezed on lib/new_develop/model/test/chart_daily_expanded_detailes_model.dart:

The parameter `title` of `ChartDailyExpandedDetailesModel` is non-nullable but is neither required nor marked with @Default
package:app/new_develop/model/test/chart_daily_expanded_detailes_model.dart:9:12
  ╷
9 │     String title,

我是颤动医生:

代码语言:javascript
复制
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.2.3, on Linux, locale en_US.UTF-8)
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/linux#android-setup for more details.
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.2)
[✓] Android Studio
[✓] VS Code (version 1.60.0)
[✓] Connected device (2 available)

! Doctor found issues in 1 category.

我的项目不是空安全的,我想在非空安全状态下使用freezed。

EN

回答 1

Stack Overflow用户

发布于 2021-09-07 13:56:25

在项之前添加required,或者可以使用String?或提供默认值(如@Default("") String icon, )使其可为空

代码语言:javascript
复制
@freezed
abstract class ChartDailyExpandedDetailesModel
    with _$ChartDailyExpandedDetailesModel {
  const factory ChartDailyExpandedDetailesModel({
    required String title,
    required String testNumber,
     String? testPercentage, //nullable item
    @Default("") String icon, //contain default value
  }) = _ChartDailyExpandedDetailesModel;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69089413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档