flutter 防止widget rebuild(亲测有效2020篇)

2023-10-26

相比这个问题很多开发着都已经遇到了,头疼了很久了吧。我也是,网上搜到各种方法,试了还是不行。下面我举一下场景:

跳转场景:

页面A --> 页面B --> 页面C —> 页面D

从上面简单都例子,我很悲催的告诉大家不管我从哪个页面跳哪个页面,从B->C 或者C->D页面,页面A都会被重新rebuild,不管是从C->D,或者是D-C页面都会刷新,不管是销毁其他页面还是打开新都页面,页面A都会刷新

好了,上面就是我所遇到的情况,这个情况从开发困扰到现在,一直到现在。

解决方法:
方法一:

升级到1.17版本,据说这个版本已经将这个问题解决了,然而因为项目使用插件比较多,比较庞大,升级难度又比较大,索性放弃了这个方法。

方法二:

GitHub给出了方法,主要方法是修改了几个文件,将SDK相关到部分文件给替换掉即可。链接:https://github.com/flutter/flutter/pull/48900/files

在这里插入图片描述
一共有7个文件改变,相应到位置如下:

在这里插入图片描述
以上就是整个修改过程。如果有不懂的可以添加个人微信一块学习(备注博客):

在这里插入图片描述

个人公众号,里面有个人收集的资源,可以查看历史来获取。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

flutter 防止widget rebuild(亲测有效2020篇) 的相关文章

随机推荐

  • Unix/Linux 中什么是僵尸进程

    僵尸进程是指已完成执行但其父进程尚未终止并释放其资源的进程 在 Unix Linux 中 处于这种状态的进程被视为僵尸进程 这些进程会占用宝贵的系统资源 如果处理不当 可能会导致稳定性问题 以下是了解和处理 Unix Linux 中僵尸进程
  • 您绝对需要的 7 件在家办公必需品

    甚至在 COVID 19 大流行爆发之前 很多人就在家工作 然而 他们中的大多数人并不是全职在家工作 这就是为什么这种强制性的远程办公可能异常难以适应 虽然业务模式或工作实践的每次变化都需要一些时间来适应 但您需要记住 有很多方法可以稍微促
  • 在 Laravel 中设置文件权限的正确方法:详细教程

    Laravel 是一种流行的 Web 应用程序开发 PHP 框架 非常注重安全性 在 Laravel 的众多安全考虑因素中 正确设置文件权限至关重要 如果没有正确的权限 您的应用程序可能容易受到攻击 或者可能由于缺乏必要的访问权限而发生故障
  • 如何保护 Apache 中的特定 URL

    阻止用户访问特定网页有助于防止他们接触敏感信息 如果您将站点托管在 Apache 服务器上 则可以通过锁定特定 URL 来锁定站点 如果您只需要阻止访问单个页面 则可以锁定 URL 而无需锁定整个站点 使用 Apache 有多种方法可以做到
  • Bash 读取命令

    Bash 附带了许多内置命令 您可以在命令行或 shell 脚本中使用这些命令 在本文中 我们将探讨内置read命令 Bash read内置 read是一个 bash 内置命令 它从标准输入 或文件描述符 读取一行并将该行拆分为单词 第一个
  • 如何在 CentOS 8 上安装 Visual Studio Code

    视觉工作室代码是微软开发的开源 跨平台代码编辑器 它具有内置的调试支持 嵌入式Git控制 语法突出显示 代码完成 集成终端 代码重构和片段 本文介绍如何在 CentOS 8 上安装 Visual Studio Code 先决条件 这些说明假
  • 如何在 CentOS 8 上安装和使用 FFmpeg

    FFmpeg 是一个用于处理多媒体文件的免费开源工具集合 它包含一组共享的音频和视频库 例如libavcodec libavformat和libavutil 使用 FFmpeg 您可以在各种视频和音频格式之间进行转换 设置采样率 捕获流音频
  • 如何在 Debian 9 上安装和配置 Redis

    Redis 是一个开源内存键值数据存储 它可以用作数据库 缓存和消息代理 并支持各种数据结构 如字符串 哈希 列表 集合等 Redis 通过 Redis Sentinel 提供高可用性 包括监控 通知 自动故障转移 它还通过 Redis C
  • Python 列表排序

    对数据进行排序是使用 Python 时最常见的任务之一 例如 您可能希望按姓名对团队成员列表进行排序 或按优先级对项目列表进行排序 本文介绍了如何排序Python 中的列表 Python sort and sorted 在 Python 中
  • 如何在 Debian 9 上安装 TensorFlow

    TensorFlow是由 Google 构建的免费开源机器学习平台 许多组织都在使用它 包括 Twitter PayPal 英特尔 联想和空中客车公司 TensorFlow 可以在 Python 虚拟环境中安装在系统范围内 作为Docker
  • ​如何从 Ubuntu 16.04 升级到 18.04

    最新的 Ubuntu LTS 版本 Ubuntu 18 04 Bionic Beaver 于 2018 年 4 月 26 日发布 支持期为 5 年 直至 2023 年 4 月 在本教程中 我们将向您展示如何升级 Ubuntu 16 04 安
  • Netcat (nc) 命令及示例

    网络猫 或nc 是一个命令行实用程序 它使用 TCP 或 UDP 协议跨网络连接读取和写入数据 它是网络和系统管理员武器库中最强大的工具之一 被视为网络工具中的瑞士军刀 Netcat 是跨平台的 可用于 Linux macOS Window
  • 在 Ubuntu 20.04 上使用 Let's Encrypt 保护 Apache

    Let s Encrypt 是由互联网安全研究小组 ISRG 创建的证书颁发机构 它通过完全自动化的流程提供免费的 SSL 证书 旨在消除手动证书创建 验证 安装和续订 Let s Encrypt 颁发的证书自颁发之日起 90 天内有效 并
  • 如何在 CentOS 8 上安装 VirtualBox

    虚拟盒子是一个开源 跨平台的虚拟化平台 它支持多种来宾操作系统 包括 Linux 和 Windows 并允许您同时运行多个虚拟机 在本教程中 我们将解释如何在 CentOS 8 上安装 VirtualBox 在 CentOS 8 上安装 V
  • 在 CentOS 7 上使用 Let's Encrypt 保护 Apache

    Let s Encrypt 是由互联网安全研究小组 ISRG 开发的免费 自动化 开放的证书颁发机构 Let s Encrypt 颁发的证书自颁发之日起 90 天内有效 并且受到当今所有主要浏览器的信任 在本教程中 我们将介绍在运行 Apa
  • 如何在 Ubuntu 18.04 上安装 PostgreSQL

    PostgreSQL 或 Postgres 是一个开源通用对象关系数据库管理系统 PostgreSQL 具有许多高级功能 可让您创建复杂的 Web 应用程序 在本教程中 我们将向您展示如何在 Ubuntu 18 04 上安装 Postgre
  • 电脑开机后卡死,桌面图标点了没反应怎么办

    今天接到客户的电话 说一台台式办公PC出现故障 具体故障现象如下 电脑可以正常开机 开机后点击桌面上的所有图标都没反应 开始菜单可以点开 点开后里面的内容也无法点击打开 右键点击桌面下方启动栏可以点出来选项卡 但是点击选项卡里的内容无法打开
  • 写代码遇到Qt相关问题

    目录 qt clicked 函数 传递数据 QT读取文件个数 QT读txt数据并求出行数和列数 qt读写json 我的json文件 读写函数 换行和不换行的区别就是参数Indented和Compact的区别 把json写到文件中 QT信号槽
  • 低通滤波器算法实现_控制算法之超前-滞后补偿器(Lead_Lag Compensator)

    Lead Lag控制器主要从频域的角度来对被控系统进行校正 改善系统的频域特性 如相角裕度 幅值裕度以及灵敏度等 从而改善系统的稳定性及控制精度 是一种基于频率响应的校正方法 时域的卷积 频域的乘积 这句话很重要 深入理解 一 Lead L
  • flutter 防止widget rebuild(亲测有效2020篇)

    相比这个问题很多开发着都已经遇到了 头疼了很久了吧 我也是 网上搜到各种方法 试了还是不行 下面我举一下场景 跳转场景 页面A gt 页面B gt 页面C gt 页面D 从上面简单都例子 我很悲催的告诉大家不管我从哪个页面跳哪个页面 从B