构造函数的可选参数提示初始化
来源: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}); ...
10
相似问题
vscode 快速生成构造函数
回答 1
重新运行hasLogin一直是false
回答 1