构造函数的可选参数提示初始化

来源:14-5 hi-barrage弹幕模块组件化改造

AD灬钙奶

2021-05-07

图片描述

请问老师,创建的flutter package后,代码拷贝到package中的lib目录下后,原来正常的代码在pagckage中构造函数会一直报错,包括下边的fromjson方法的也报错,查了下老师的代码复制过来之后也是错误的

写回答

1回答

CrazyCodeBoy

2021-05-07

导致这个问题的主要原因是你创建的flutter package 所依赖的Dart 版本较高导致启用了Dart的空安全的检查,解决方案有两种:

方案一:使用兼容的dart版本

将pubspec.yaml中的sdk配置改为:

environment:
  sdk: ">=2.12.0 <3.0.0"
//改为
environment:
  sdk: ">=2.7.0 <3.0.0"

方案二:将代码改造成支持空安全

将Model中的属性添加late关键字,构造方法的参数添加required关键字:

class BarrageModel {
  String content;
  String vid;
  int priority;
  int type;

  BarrageModel({this.content, this.vid, this.priority, this.type});
  ...
//改成
class BarrageModel {
  late String content;
  late String vid;
  late int priority;
  late int type;

  BarrageModel(
      {required this.content,
      required this.vid,
      required this.priority,
      required this.type});
      ...


1
0

Flutter高级进阶实战-仿哔哩哔哩-掌握Flutter高阶技能

一次性掌握Flutter高阶技能+商业级复杂项目架构设计与开发方案

1722 学习 · 870 问题

查看课程