首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用setState还是FutureBuilder的InitState?哪种方法更适合在Flutter中显示数据库中的数据?

在Flutter中显示数据库中的数据,可以使用setState或FutureBuilder的InitState方法,具体选择哪种方法取决于具体的需求和场景。

  1. 使用setState方法:
  • 概念:setState是Flutter框架提供的一个方法,用于更新UI界面。当数据发生变化时,调用setState方法可以通知Flutter重新构建UI。
  • 优势:使用setState方法可以实时更新UI,当数据库中的数据发生变化时,可以立即反映到界面上。
  • 应用场景:适用于需要实时展示数据库中数据变化的场景,例如聊天记录、实时监控等。
  • 推荐的腾讯云相关产品:腾讯云数据库MySQL、腾讯云数据库MongoDB等。
  • 产品介绍链接地址:腾讯云数据库MySQL腾讯云数据库MongoDB
  1. 使用FutureBuilder的InitState方法:
  • 概念:FutureBuilder是Flutter框架提供的一个Widget,用于处理异步操作的结果。InitState是FutureBuilder的一个回调方法,在Widget初始化时调用。
  • 优势:使用FutureBuilder的InitState方法可以在Widget初始化时异步加载数据库中的数据,避免了UI的阻塞。
  • 应用场景:适用于需要在Widget初始化时加载数据库数据的场景,例如用户信息展示、数据统计等。
  • 推荐的腾讯云相关产品:腾讯云云数据库Redis、腾讯云云数据库CynosDB等。
  • 产品介绍链接地址:腾讯云云数据库Redis腾讯云云数据库CynosDB

需要根据具体的业务需求和性能要求选择合适的方法。如果需要实时更新UI,可以使用setState方法;如果需要在Widget初始化时异步加载数据,可以使用FutureBuilder的InitState方法。同时,根据具体的数据库类型和功能需求,可以选择相应的腾讯云数据库产品来存储和管理数据。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

FLutter异步加载组件FutureBuilder

FutureBuilder 实际开发,进入一个页面后执行网络请求加载数据显示是非常普遍,这时候我们一般会显示loading直到加载完成显示正常页面。...flutter我们可以initState中发起异步请求,然后将请求结果赋值给data,并setState刷新页面,build可以这样实现 if(data == null){ return...snapshotconnectionState表示异步任务状态,如果是ConnectionState.done表示任务完成,这时候通过snapshot.hasError来区分是出错(显示错误)还是正常完成...(显示数据);否则就表示任务执行显示laoding)。...所以我们只要提前将异步任务函数赋值给一个变量,然后FutureBuilder使用这个变量即可,如下: var _mFuture; @override void initState()

2.1K30

【 源码之间 - FlutterFutureBuilder 使用

一、前言: 主要就是请求网络api,返回数据,展业界面。根据不同状态显示不同界面。...FutureBuilder使用 先定义异步任务和当前页码,使用FutureBuilder进行构造组件。全代码见文尾。...get方法方便使用 final ConnectionState connectionState; # 连接状态 final T data; # 数据 final Object error; #...,也就是源码这里 可以看出回调中会将异步返回数据放在_snapshot这个瓶子里,并setState 这样_snapshot更新后,会重新执行build方法,又会回调外界_builderList...父组件刷新时_FutureBuilderState行为 点击加号时,更新异步方法,获取下一页数据,然后父组件执行setState void _doAdd() { setState(() {

1.1K20

FutureBuilder源码分析

关于 FutureBuilder 使用,我之前公众号文章中有写过, 如果没看过可以跳转:Flutter FutureBuilder 异步UI神器....= null), super(key: key); 构造函数很简单,上一篇文章也说过,主要就是三个参数: •future:是我们异步请求,该异步请求必须不能在 build 方法初始化!...initState() 接着是初始化方法: @override void initState() { super.initState(); _snapshot = AsyncSnapshot<T...总结 Future 状态无非三种: 1.未开始2.进行3.已完成 其中 已完成 又分为两种: 1.有数据2.有异常 其实可以看到,FutureBuilder 大体上思路就是对 Future 状态封装... Flutter ,我们可以通过查看源码来获取很多灵感,因为 Flutter 注释写简直不要太到位!

83120

Flutter | 定义一个通用多功能网络请求 Widget

不过,后续还是会每周最少更新两篇! 那说起网络请求控件,我们首先是不是会想起 FutureBuilderFutureBuilder 给我们封装好了网络请求各种状态。...我们在网络请求添加了一个 Loading,而且需要一个 BuildContext。 我们都知道,是不能在 initState() 方法中去使用这个 BuildContext 。...请求数据显示 Loading 但是,这里也有一个问题: 我们最开始定义网络请求工具类时候,每一个网络请求都是一个方法,而每个方法中都有或者没有参数。...第一帧回调 来调用该网络请求了,这样一举两得: 既不用在使用该控件时候调用方法,又避免了 Loading 使用 BuildContext 报错问题。...然后 ConnectionState.done 判断是否存在数据,如果有的话,就显示传进来 Widget。 如果返回错误,则返回错误 Widget。

1.7K31

Flutter | 事件循环,Future

正文 Dart ,没有多线程概念,所谓异步操作全部都是一个线程里面执行, 并且不会造成卡顿原因就是事件循环(Event Loop), 如下图所示,程序运行过程,会有两个事件...,就会自动调用下面的 build 函数, initialData:初始值, future 没完成时候可以暂时使用该值,该值会放在 AsyncSnapshot data future...FutureBuilder 作用就是根据 future 状态来判断当前页面需要显示哪些 widiget,例如 future 等待时候显示加载框,完成之后显示内容等。...日常开发,StreamBuilder 还是挺实用,这次我们用 StreamBuilder 来做一个小游戏,先看效果: 从上面的动画来看,可以将其分为三个部分,第一个部分则是底部键盘,第二部分就是向下落题目...Stream,并且创建了一个动画, initState ,监听动画和输入事件,动画结束则表示没有答对题,直接重置,并扣分,收到输入事件之后则 计算结果是否真确,然后重置,并且加分 reset 方法中用于生产题目和

4.3K10

Flutter Widgets 之 FutureBuilder

展示异步任务状态 当有一个Future(异步)任务需要展示给用户时,可以使用FutureBuilder控件来完成,比如向服务器发送数据成功时显示成功提示: var _future = Future.delayed...builder是FutureBuilder构建函数,在这里可以判断状态及数据显示不同UI, ConnectionState状态包含四种:none、waiting、active、done,但我们只需要关注...ListView加载网络数据 FutureBuilder还有一个比较常用场景:网络加载数据并列表展示,这是一个非常常见功能,在网络请求过程显示loading,请求失败时显示失败UI,成功时显示成功...通过上面的示例说明FutureBuilder控件极大简化了异步任务相关显示控件,不再需要开发者自己维护各种状态以及更新时调用`State.setState`。...... } FutureBuilder( future: _future(), ... ) 上面的方式是不相等,是错误用法,可以将_future方法赋值给变量: var _mFuture

1.2K40

Flutter混编工程之通讯之路

这个系列开始,我们将从「能用Flutter」到「可用Flutter迁移过程来讲解如何在实际项目中更好使用Flutter,下面是第一篇。 对于混编工程来说,最常用需求就是双端数据通信。...提供了Flutter调用原生方法能力。...,图片数据使用Uint8List来进行传递。...首先,我们Flutter构建这样一个列表,用于展示一个信息List,信息来源是原生侧,所以,Flutter界面的initState,我们创建一个名为stringCodecDemoBasicMessageChannel...❞ 另外,不管是Flutter还是原生代码,都是可以通过Channel来向对方通信,以BasicMessageChannel为例,原生和Flutter侧,都可以调用send函数来发送消息,也都可以设置

1.9K20

Flutter自制插件之r_scan二维码&条形码扫描(支持文件、url、内存、相机)

介绍 二维码作为信息载体,广泛应用于我们生活方方面面,例如:使用支付宝支付,二维码加好友,二维码推广等等,能举例例子多不胜数,而如果你应用支持二维码扫描,用户和体验将会翻倍增长,如果你是应用开发者...项目地址:https://github.com/rhymelph/r_scan 使用 你可以pub.dev网站上面搜索r_scan即可找到该插件,添加下面代码到pubspec.yaml文件 dependencies...();; 如果你main()方法下获取可用相机,请使用下面代码 List rScanCameras; void main() async { WidgetsFlutterBinding.ensureInitialized...(已弃用)基于PlatformView使用相机扫描二维码/条形码 import 'package:flutter/material.dart'; import 'package:permission_handler...打开闪光灯/获取闪光灯状态 使用RScanController类实例直接调用 //关闭闪光灯 await _controller.setFlashMode(false); //打开闪光灯 await

2.1K20

Laravel 6 缓存数据库查询结果方法

这一次,我们将讨论直接从模型缓存 Eloquent 查询,从而使数据库缓存变轻而易举。 这个包可以 GitHub 找到,此文档将介绍该应用程序所有要点。...如果此查询缓存为空,那么会去数据库获取数据,并且缓存它,以便下次可以从缓存获取。如果此查询存在于缓存,那么直接返回。...// 数据库访问,查询结果存储缓存 Article::latest()- get();// 未访问数据库,查询结果直接从缓存返回。...Article::latest()- get(); 如果你只是想要避免命中缓存,你可以命中最后一个方法之前使用 – dontCache() 。...Laravel 6 缓存数据库查询结果方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

5.2K41

Flutter 实战】文件系统目录

老孟导读:Flutter 获取文件路径,我们都知道使用 path_provider,但对其目录对含义不是很清楚,此文介绍 Android、iOS 系统文件目录,不同场景下建议使用目录。...不同平台对应文件系统是不同,比如文件路径,因此 Flutter 获取文件路径需要原生支持,原生端通过 MethodChannel 传递文件路径到 Flutter,如果没有特殊需求,推荐大家使用...下面从 Android 和 iOS 平台角度介绍其文件路径,最后给出路径使用建议以及使用过程需要注意事项。 Android 文件存储 Android 文件存储分为内部存储和外部存储。...存储空间有限,此目录数据随时可能被系统清除,也可以通过 设置 清除数据 可以清除此目录数据。...() { super.initState(); setState(() { _tempDirectory = getTemporaryDirectory(); _

2.8K10

Flutter 面试知识点集锦

Zone Dart 可通过 Zone 表示指定代码执行环境,类似一个沙盒概念, Flutter C++ 运行 Dart 也是 _runMainZoned 内执行 runZoned 方法启动...didChangeDependencies() initState() 之后调用,当 State 对象依赖关系发生变化时,该方法被调用,初始化时也会调用。...image ---- 通过 StreamBuilder 和 FutureBuilder 我们可以快速使用 Stream 和 Future 快速构建我们异步控件: 《Flutter完整开发实战详解(十一...+ Surface 等实现,大致原理就是: 使用了类似副屏显示技术,VirtualDisplay 类代表一个虚拟显示器,调用 DisplayManager createVirtualDisplay...() 方法,将虚拟显示内容渲染在一个 Surface 控件上,然后将 Surface id 通知给 Dart,让 engine 绘制时,在内存中找到对应 Surface 画面内存数据,然后绘制出来

5K61

Flutter Shimmer 动画效果

处理向用户传递信息正在加载一种主流方法不准确加载物质类型形状上显示带有微光动画铬色调。 在在这篇博客,我们将探索 Flutter Shimmer 动画效果。...它演示了应用程序从服务器或本地数据库加载信息。有多种方法可以显示这种效果。在这种情况下,我们通常会在加载信息后对与第一个小部件完全相似的小部件进行动画处理。...此演示视频展示了如何在颤动创建微光动画效果。它展示了如何在 Flutter应用程序中使用shimmer包来实现微光动画效果。...它显示代码何时成功运行,然后显示内容正在从虚拟数据加载是带有持续时间微光动画效果,然后加载完成然后内容将显示设备上。...,微光停止,所有数据显示屏幕上。

5.7K20

Flutter 刷新页面:通过下拉刷新提升用户体验

无论选择哪种方法,目标都是确保触发刷新操作时,应用程序状态能够反映新数据,而不会导致用户界面的中断或者不一致。...当在 Flutter 实现下拉刷新,使用 Provider,我们需要通过一个 provider 来暴露一个方法来刷新数据,然后 onRefresh 回调函数调用该方法。...复杂 Flutter 应用程序拉动刷新 更复杂 Flutter 应用程序,下拉刷新可能和多个状态层和数据源有交互。在这种场景,实现一个能够处理复杂性有强大状态管理解决方案至关重要。...当处理复杂数据和状态时,考虑使用流 streams 或者 FutureBUilder 挂件来更新 UI,当新数据反应可用时。这保证应用程序当前状态, UI 还是同步,即使数据被拉取和更新。...FutureBuilder 通过 _handleRefresh 方法拉取最新数据来构建列表。

18310
领券