FlutterBoost发布了3.0,试着把Flutter升级到了2.5空安全版本,升级的过程几乎是逐行更改代码,对项目影响很大,遇到的一些坑分享给大家

  1. 空类型
    ○ 声明时可为空的变量需要加?
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需要加默认值

  1. 组件变化
    ○ FlutterBoost.singleton.open => BoostNavigator.instance.push
    ○ Scaffold中appBar属性的类型Widget => PreferredSizeWidget
    一般常为:AppBar、TabBar、PreferredSize
    resizeToAvoidBottomPadding => resizeToAvoidBottomInset
    ○ Stack中overflow => clipBehavior

  2. 创建List时:List() => []
    List list = []
    var _hotList = []

  3. 页面生命周期监听改变

  4. 类冲突:下面两个引用文件中,都有DateUtils类,会发生冲突,DateUtils识别不出什么意思
    解决方法是其中一个改名或者去掉一个import

import 'package:ncflutter/utils/date_utils.dart';
import 'package:flutter/material.dart';
DateUtils.format()
  1. WillPopScope组件的onWillPop方法需要用async修饰

  2. programKey.currentContext!.findRenderObject()返回值为RenderObject需强转为RenderBox

两周时间FlutterBoost发布了两个小版本,很多issue还没有修复,目前想先等一波

Flutter升级空安全版本注意事项相关推荐

  1. 「FlutterBug」FlutterBoost启动黑屏处理(升级空安全版本)

    升级空安全后的FlutterBoost 在应用启动第一次打开Flutter 页面时会出现短暂的闪一下黑屏,目前查看Fluttboost 在github 上的 issue 只能我们自己先去处理.官方没有 ...

  2. Flutter升级到1.12填坑指南

    最近由于项目需要,需要把flutter升级到stable版本,目前的stable版本是1.12.13的hotfix,而我们项目目前的版本是1.7.3.Google在发布flutter 1.12对And ...

  3. 如何使用ISO升级TrueNAS主要版本

    升级操作系统之前在"系统-常规-保存设置"中备份TrueNAS配置.备份任何文件或加密数据的密钥或密码短语,并停止所有系统服务.将准备好的ISO升级文件插入系统并从中启动,然后选择 ...

  4. Centos 升级linux内核版本

    有两种方法可以升级Centos内核版本.分别是:1. 下载linux内核源码,编译内核源码进行安装.2:下载官方的rpm包进行安装升级.下面分别进行说明. 一.使用下载内核源码进行升级 1.1.从官网 ...

  5. Flutter之fvm管理版本

    对于flutter SDK版本,相信很多人都有深有体会,项目多了以后,可能每个项目使用的SDK都不同. 我个人的经历是:官方从2.12版本推出空安全版本,由于最初的项目用的空安全之前版本,老项目无法尽 ...

  6. 【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. 升级前的注 ...

  7. flutter dart空安全

    空安全版本 空安全(Sound null safety)是 Dart 2.12 中新增的一项特性,空安全特性并不是 Dart 独有的, 健全的空安全已在 Dart 2.12 和 Flutter 2 中 ...

  8. Ubuntu14.04 LTS中升级gcc/g++版本到4.9.4的操作步骤

    Ubuntu14.04 LTS中默认的gcc/g++版本为4.8.4,如下图,在C++11中增加了对正则表达式的支持,但是好像到gcc/g++ 4.9.2版本才会对正则表达式能很好的支持,这里介绍下U ...

  9. 将Node.js升级到最新版本

    本文翻译自:Upgrading Node.js to latest version So, I have Node.js installed and now when I tried to insta ...

最新文章

  1. 张文宏在人工智能大会上“泼冷水”:国内疫情基本结束,防控一开始用的全是“人工”!
  2. 学习redhat linux 6.1中文版笔记
  3. 优秀Java开发者的10条共性
  4. scala 操作hdfs
  5. sklearn 神经网络_sklearn中的数据预处理和特征工程
  6. HttpRequest Java原生代码封装
  7. android studio简易记账本,Android记账本
  8. Hadoop入门-单机伪分布式配置
  9. Java面典_【Java实用工具】——使用oshi获取主机信息
  10. 955.WLB 不加班公司名单,2022年最新版!新增5家公司
  11. http2.0和http1.1的区别
  12. 儿歌-宝宝学唱儿歌 ios版
  13. python如何发布项目_python如何发布自已pip项目的方法步骤
  14. html制作苹果手机屏幕,iphone怎么录屏幕点击动作(苹果手机的屏幕录制步骤)...
  15. 在线查服务器地址,工具|查询域名所在服务器的其他网站和IP
  16. 贝叶斯分析好坏_交易必读|浅谈贝叶斯分析
  17. 数学分析教程(科大)——4.2笔记+习题
  18. 基于单片机的水壶自动加热系统_基于单片机电热水壶控制系统的设计
  19. 树莓派集成BH1750光敏传感器配置
  20. 计算时间复杂度--(简单版)

热门文章

  1. 海信85U7G-PRO怎么样 有什么优缺点
  2. 同花顺_代码解析_技术指标_S
  3. Office+Visio安装教程
  4. MarkdownPad2自动生成侧边导航栏目录
  5. 『关键词挖掘』结合 LDA + Word2Vec + TextRank 实现关键词的挖掘
  6. 安徽大学本科毕业论文答辩和论文选题PPT模板
  7. K100多功能嵌入吞吐式电动发卡读写一体机|读卡器技术选型问答
  8. 红旗linux6桌面版系统安装,红旗Linux6.0桌面正式版光盘安装{图解教程}
  9. python一张图-一张图学会python
  10. 知识付费项目怎么做?新手小白怎么入手!