Flutter升级空安全版本注意事项
FlutterBoost发布了3.0,试着把Flutter升级到了2.5空安全版本,升级的过程几乎是逐行更改代码,对项目影响很大,遇到的一些坑分享给大家
- 空类型
○ 声明时可为空的变量需要加?
UserEntity? user;
user?.userId = 759896253;
user = UserEntity();
user!.nickname = "测试用名";
○ 构造方法要在方法体外为不能为空的成员变量赋值,如下的msg字段,而code、data、error就不必如此
要在构造方法执行前,保证当前类中非dynamic、late标识的成员变量都不为空
class Test{int code = -1;String msg;dynamic data;late String error;Test(): msg = "" {}
}
○ 组件方法中可选参数(非空类型)要么加默认值,要么加required注解标明必传,@required => required
final int index;
CoursesSubPage({this.index = 1});
CoursesSubPage({required this.index});
○ 继承JsonConvert的Entity需要加默认值
组件变化
○ FlutterBoost.singleton.open => BoostNavigator.instance.push
○ Scaffold中appBar属性的类型Widget => PreferredSizeWidget
一般常为:AppBar、TabBar、PreferredSize
resizeToAvoidBottomPadding => resizeToAvoidBottomInset
○ Stack中overflow => clipBehavior创建List时:List() => []
List list = []
var _hotList = []页面生命周期监听改变
类冲突:下面两个引用文件中,都有DateUtils类,会发生冲突,DateUtils识别不出什么意思
解决方法是其中一个改名或者去掉一个import
import 'package:ncflutter/utils/date_utils.dart';
import 'package:flutter/material.dart';
DateUtils.format()
WillPopScope组件的onWillPop方法需要用async修饰
programKey.currentContext!.findRenderObject()返回值为RenderObject需强转为RenderBox
两周时间FlutterBoost发布了两个小版本,很多issue还没有修复,目前想先等一波
Flutter升级空安全版本注意事项相关推荐
- 「FlutterBug」FlutterBoost启动黑屏处理(升级空安全版本)
升级空安全后的FlutterBoost 在应用启动第一次打开Flutter 页面时会出现短暂的闪一下黑屏,目前查看Fluttboost 在github 上的 issue 只能我们自己先去处理.官方没有 ...
- Flutter升级到1.12填坑指南
最近由于项目需要,需要把flutter升级到stable版本,目前的stable版本是1.12.13的hotfix,而我们项目目前的版本是1.7.3.Google在发布flutter 1.12对And ...
- 如何使用ISO升级TrueNAS主要版本
升级操作系统之前在"系统-常规-保存设置"中备份TrueNAS配置.备份任何文件或加密数据的密钥或密码短语,并停止所有系统服务.将准备好的ISO升级文件插入系统并从中启动,然后选择 ...
- Centos 升级linux内核版本
有两种方法可以升级Centos内核版本.分别是:1. 下载linux内核源码,编译内核源码进行安装.2:下载官方的rpm包进行安装升级.下面分别进行说明. 一.使用下载内核源码进行升级 1.1.从官网 ...
- Flutter之fvm管理版本
对于flutter SDK版本,相信很多人都有深有体会,项目多了以后,可能每个项目使用的SDK都不同. 我个人的经历是:官方从2.12版本推出空安全版本,由于最初的项目用的空安全之前版本,老项目无法尽 ...
- 【ESXi 6.X升级7.X】ESXi 升级 —— 升级前准备工作,注意事项以及示例 — 使用 vSphere Lifecycle Manager升级 ESXi 6.5 到 7.0.3
目录 1. 升级前的准备工作 1.1 确认 vCenter Server 与 ESXi 的互操作性 1.2 查看 ESXi 是否能直接升级到高版本 1.3 硬件,驱动,固件兼容性确认 2. 升级前的注 ...
- flutter dart空安全
空安全版本 空安全(Sound null safety)是 Dart 2.12 中新增的一项特性,空安全特性并不是 Dart 独有的, 健全的空安全已在 Dart 2.12 和 Flutter 2 中 ...
- Ubuntu14.04 LTS中升级gcc/g++版本到4.9.4的操作步骤
Ubuntu14.04 LTS中默认的gcc/g++版本为4.8.4,如下图,在C++11中增加了对正则表达式的支持,但是好像到gcc/g++ 4.9.2版本才会对正则表达式能很好的支持,这里介绍下U ...
- 将Node.js升级到最新版本
本文翻译自:Upgrading Node.js to latest version So, I have Node.js installed and now when I tried to insta ...
最新文章
- 张文宏在人工智能大会上“泼冷水”:国内疫情基本结束,防控一开始用的全是“人工”!
- 学习redhat linux 6.1中文版笔记
- 优秀Java开发者的10条共性
- scala 操作hdfs
- sklearn 神经网络_sklearn中的数据预处理和特征工程
- HttpRequest Java原生代码封装
- android studio简易记账本,Android记账本
- Hadoop入门-单机伪分布式配置
- Java面典_【Java实用工具】——使用oshi获取主机信息
- 955.WLB 不加班公司名单,2022年最新版!新增5家公司
- http2.0和http1.1的区别
- 儿歌-宝宝学唱儿歌 ios版
- python如何发布项目_python如何发布自已pip项目的方法步骤
- html制作苹果手机屏幕,iphone怎么录屏幕点击动作(苹果手机的屏幕录制步骤)...
- 在线查服务器地址,工具|查询域名所在服务器的其他网站和IP
- 贝叶斯分析好坏_交易必读|浅谈贝叶斯分析
- 数学分析教程(科大)——4.2笔记+习题
- 基于单片机的水壶自动加热系统_基于单片机电热水壶控制系统的设计
- 树莓派集成BH1750光敏传感器配置
- 计算时间复杂度--(简单版)
热门文章
- 海信85U7G-PRO怎么样 有什么优缺点
- 同花顺_代码解析_技术指标_S
- Office+Visio安装教程
- MarkdownPad2自动生成侧边导航栏目录
- 『关键词挖掘』结合 LDA + Word2Vec + TextRank 实现关键词的挖掘
- 安徽大学本科毕业论文答辩和论文选题PPT模板
- K100多功能嵌入吞吐式电动发卡读写一体机|读卡器技术选型问答
- 红旗linux6桌面版系统安装,红旗Linux6.0桌面正式版光盘安装{图解教程}
- python一张图-一张图学会python
- 知识付费项目怎么做?新手小白怎么入手!