当前位置: 首页 > news >正文

网站建设的素材处理方式今日新闻最新10条

网站建设的素材处理方式,今日新闻最新10条,装修网站平台有哪些,企业网站一般做哪些栏目在 Flutter 中,如果你想让 FutureBuilder 的 future 函数再次执行,可以通过以下几种方式实现: 方法 1:使用 Key 强制重建 FutureBuilder 通过改变 FutureBuilder 的 key,可以强制 Flutter 重建它,从而重新…

在 Flutter 中,如果你想让 FutureBuilderfuture 函数再次执行,可以通过以下几种方式实现:


方法 1:使用 Key 强制重建 FutureBuilder

通过改变 FutureBuilderkey,可以强制 Flutter 重建它,从而重新执行 future 函数:

class MyWidget extends StatefulWidget {_MyWidgetState createState() => _MyWidgetState();
}class _MyWidgetState extends State<MyWidget> {// 使用 UniqueKey 来强制重建 FutureBuilderUniqueKey _futureBuilderKey = UniqueKey();Future<String> fetchData() async {// 模拟网络请求await Future.delayed(Duration(seconds: 2));return "New Data: ${DateTime.now()}";}void _refreshData() {setState(() {// 改变 key,FutureBuilder 会重新执行 future_futureBuilderKey = UniqueKey();});}Widget build(BuildContext context) {return Column(children: [ElevatedButton(onPressed: _refreshData,child: Text("Refresh Data"),),FutureBuilder<String>(key: _futureBuilderKey, // 关键点:改变 key 会重建 FutureBuilderfuture: fetchData(),builder: (context, snapshot) {if (snapshot.connectionState == ConnectionState.waiting) {return CircularProgressIndicator();}if (snapshot.hasError) {return Text("Error: ${snapshot.error}");}return Text("Data: ${snapshot.data}");},),],);}
}

方法 2:使用 StatefulWidget 管理 future

StatefulWidget 中存储 future,并在需要刷新时重新调用 fetchData

class MyWidget extends StatefulWidget {_MyWidgetState createState() => _MyWidgetState();
}class _MyWidgetState extends State<MyWidget> {Future<String>? _futureData;Future<String> fetchData() async {await Future.delayed(Duration(seconds: 2));return "New Data: ${DateTime.now()}";}void initState() {super.initState();_futureData = fetchData(); // 初始化 future}void _refreshData() {setState(() {_futureData = fetchData(); // 重新赋值 future});}Widget build(BuildContext context) {return Column(children: [ElevatedButton(onPressed: _refreshData,child: Text("Refresh Data"),),FutureBuilder<String>(future: _futureData,builder: (context, snapshot) {if (snapshot.connectionState == ConnectionState.waiting) {return CircularProgressIndicator();}if (snapshot.hasError) {return Text("Error: ${snapshot.error}");}return Text("Data: ${snapshot.data}");},),],);}
}

方法 3:使用 StreamBuilder 替代 FutureBuilder

如果数据需要频繁刷新,可以考虑使用 Stream + StreamBuilder

class MyWidget extends StatefulWidget {_MyWidgetState createState() => _MyWidgetState();
}class _MyWidgetState extends State<MyWidget> {final StreamController<String> _streamController = StreamController();Future<String> fetchData() async {await Future.delayed(Duration(seconds: 2));return "New Data: ${DateTime.now()}";}void _refreshData() {fetchData().then((data) {_streamController.add(data); // 手动推送新数据到 Stream});}void initState() {super.initState();_refreshData(); // 初始化数据}void dispose() {_streamController.close();super.dispose();}Widget build(BuildContext context) {return Column(children: [ElevatedButton(onPressed: _refreshData,child: Text("Refresh Data"),),StreamBuilder<String>(stream: _streamController.stream,builder: (context, snapshot) {if (snapshot.connectionState == ConnectionState.waiting) {return CircularProgressIndicator();}if (snapshot.hasError) {return Text("Error: ${snapshot.error}");}return Text("Data: ${snapshot.data}");},),],);}
}

总结

方法适用场景特点
改变 Key简单场景强制重建 FutureBuilder,适合一次性刷新
重新赋值 future推荐方式通过 setState 更新 future,逻辑清晰
StreamBuilder频繁刷新适合需要持续监听数据变化的场景

选择最适合你需求的方式即可!

http://www.khdw.cn/news/35255.html

相关文章:

  • 简易网站开发时长淄博网站优化
  • php网站后台反应慢怎么解决企业网站推广渠道
  • 论坛网站怎么做怎么样自己创建网站
  • 高唐网站制作semen是什么意思
  • wordpress滑动tabseo对网店推广的作用
  • wordpress段落间距seo咨询师招聘
  • 无锡专业做网站如何推广宣传一个品牌
  • 手机网站建设规划图站长工具seo优化建议
  • 绍兴劳务公司seo是什么软件
  • 网站开发架构推广渠道平台
  • 400电话单页网站seo的优化方案
  • 深圳有哪些网站开发公司网站百度收录突然消失了
  • 南京政府门户网站建设问题semi认证
  • 建设银行山东分行社会招聘网站环球军事网
  • 德尔普网站建设网站推广优化网址
  • wordpress模板网站模板创建网页步骤
  • 家具网站建设比较好的公司专业网站建设
  • 营销型网站建设制作推广最新百度关键词排名
  • 做html5网站线上推广方式
  • 武汉做营销型网站建设站长网站优化公司
  • 电脑做网站怎么解析域名seo查询 站长之家
  • 厦门做企业网站的公司天津seo排名扣费
  • 苏州网站推广找苏州梦易行最打动人心的广告语
  • 利用wordpress赚钱seo推广网络
  • 我国电子政府门户网站建设的问题与建议友情链接搜读
  • 松原手机网站开发公司电话52种新颖的促销方式
  • wordpress 同步 微博aso优化推广
  • 网上电影网站怎么做的推广方式和推广渠道
  • web前端响应式布局深圳网站seo外包公司哪家好
  • 做推送的网站推荐seo专业培训