You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

我的widget因为位置在widget树的底部,所以setState()无法工作,那么我应该如何重建该widget?

可以使用InheritedWidget来在widget树中传递setState()函数并手动触发widget的重建。下面是一个示例代码:

import 'package:flutter/material.dart';

class MyInheritedWidget extends InheritedWidget {
  const MyInheritedWidget({Key? key, required Widget child})
      : super(key: key, child: child);

  void updateMyWidget() {
    // 更新widget
    this.notifyDependents(this);
  }

  @override
  bool updateShouldNotify(covariant MyInheritedWidget oldWidget) {
    return true;
  }

  static MyInheritedWidget? of(BuildContext context) {
    return context.dependOnInheritedWidgetOfExactType<MyInheritedWidget>();
  }
}

class MyWidget extends StatefulWidget {
  @override
  _MyWidgetState createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  int _count = 1;

  void _incrementCount() {
    setState(() {
      _count++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        Text('Count: $_count'),
        ElevatedButton(
          child: Text('Increment'),
          onPressed: _incrementCount,
        ),
        MyInheritedWidget(
          child: MyOtherWidget(),
        )
      ],
    );
  }
}

class MyOtherWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final state = MyInheritedWidget.of(context)!;
    return Column(
      children: [
        ElevatedButton(
          child: Text('Rebuild MyWidget'),
          onPressed: () {
            state.updateMyWidget(); // 通过InheritedWidget传递setState函数
          },
        ),
        Text('This is MyOtherWidget'),
      ],
    );
  }
}

在MyInheritedWidget中,我们定义了一个名为updateMyWidget()的方法,在MyOtherWidget中,我们使用MyInheritedWidget.of(context)获取到MyInheritedWidget的实例,并在按下按钮时调用该实例的updateMyWidget()方法,从而手动

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

MAD,现代安卓开发技术:Android 领域开发方式的重大变革|社区征文

Apk 的下载会耗费网络流量,安装了还会占用存储空间。其体积的大小会对 App 安装和留存产生影响,分析和优化其体积显得尤为必要。借助 AS 的 `APK Analyzer` 可以帮助完成如下几项工作:* 快速分析 Apk 构成,包括... override fun onCreate(savedInstanceState: Bundle) { super.onCreate(savedInstanceState) val binding = ResultProfileBinding.inflate(layoutInflater) setContentView(binding....

Apache Pulsar 在火山引擎 EMR 的集成与场景

在这条数据链路上的各个环节都有火山引擎数据中台的产品来对接。火山引擎 EMR 产品在数据中台整个的产品体系全景图中,处于基座的位置(如上图中黄色框所示),对于用户构建端到端的数据链路起着重要的支撑作用。火山引擎 EMR 基于火山引擎的 IaaS 能力,提供底层基础的大数据体系的计算引擎和存储引擎,并向上对接数据开发治理工具 DataLeap。 如果用一句话来定义火山引擎 EMR 这个云产品,那就是“Stateless 云原生开源大数据平...

Const在Flutter性能方面的表现|社区征文

在Flutter中也是表示不变的意思。具体来看看下面的代码。```Row( children: [ Image(image: NetworkImage('https://flutter.github.io/assets-for-api-docs/assets/widgets/owl.jpg')), ... 必然要调用setState() 方法。我们都知道,如果调用setState() ,那么整个Row包括Image和Text都会自动递归重建。每调用一次,父widget和子widget都会重建一次,那么在复杂的UI和业务场景下,就加深了app的不稳定性。这...

PostgreSQL 12 Reindex Concurrently 使用举例

# 前言在 PostgreSQL 中,有如下场景我们需要进行重建索引1. 索引膨胀。2. 当修改了某些参数,为了使之完全生效,需要进行 reindex 操作,如 fillfactor。3. 索引损坏。4. 在线创建索引失败,索引状态为 "invaild... state_change | 2022-04-06 15:38:53.278429+08wait_event_type | wait_event | state | activebackend_xid | backend_xmin | 3400query | REINDEX INDEX CONCUR...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

我的widget因为位置在widget树的底部,所以setState()无法工作,那么我应该如何重建该widget? -优选内容

MAD,现代安卓开发技术:Android 领域开发方式的重大变革|社区征文
Apk 的下载会耗费网络流量,安装了还会占用存储空间。其体积的大小会对 App 安装和留存产生影响,分析和优化其体积显得尤为必要。借助 AS 的 `APK Analyzer` 可以帮助完成如下几项工作:* 快速分析 Apk 构成,包括... override fun onCreate(savedInstanceState: Bundle) { super.onCreate(savedInstanceState) val binding = ResultProfileBinding.inflate(layoutInflater) setContentView(binding....
macOS (C++)
在火山引擎控制台上开通实时音视频服务,你需要从控制台获取 AppID 和临时 Token 用于项目跑通 创建项目 打开 Qt 安装路径下的 Qt Creator。 单击文件 > New Project。 选择 Qt Widgets Application 模版,输入项... public bytertc::IRTCRoomEventHandler { Q_OBJECTpublic: void onRoomStateChanged( const char* room_id, const char* uid, int state, const char* extra_info) override { if (room_id !...
Apache Pulsar 在火山引擎 EMR 的集成与场景
在这条数据链路上的各个环节都有火山引擎数据中台的产品来对接。火山引擎 EMR 产品在数据中台整个的产品体系全景图中,处于基座的位置(如上图中黄色框所示),对于用户构建端到端的数据链路起着重要的支撑作用。火山引擎 EMR 基于火山引擎的 IaaS 能力,提供底层基础的大数据体系的计算引擎和存储引擎,并向上对接数据开发治理工具 DataLeap。 如果用一句话来定义火山引擎 EMR 这个云产品,那就是“Stateless 云原生开源大数据平...
Const在Flutter性能方面的表现|社区征文
在Flutter中也是表示不变的意思。具体来看看下面的代码。```Row( children: [ Image(image: NetworkImage('https://flutter.github.io/assets-for-api-docs/assets/widgets/owl.jpg')), ... 必然要调用setState() 方法。我们都知道,如果调用setState() ,那么整个Row包括Image和Text都会自动递归重建。每调用一次,父widget和子widget都会重建一次,那么在复杂的UI和业务场景下,就加深了app的不稳定性。这...

我的widget因为位置在widget树的底部,所以setState()无法工作,那么我应该如何重建该widget? -相关内容

Swift 周报 第十八期技术汇总 | 社区征文

您的类型定义仍然必须实际定义该存储。9) 讨论[状态初始化器中的 UUID](https://forums.swift.org/t/uuid-in-state-initializer/61593 "状态初始化器中的 UUID")10) 讨论[对于金融计算用 Decimal 还是 Double... [在 SwiftUI 中开发灵动岛](https://swiftwithmajid.com/2022/09/28/mastering-dynamic-island-in-swiftui/ "Mastering Dynamic Island in SwiftUI")**摘要:** 本文将详细介绍使用 WidgetKit 框架中新的 API 实现...

Apache Pulsar 在火山引擎 EMR 的集成与场景

在这条数据链路上的各个环节都有火山引擎数据中台的产品来对接。火山引擎 EMR 产品在数据中台整个的产品体系全景图中,处于基座的位置(如上图中黄色框所示),对于用户构建端到端的数据链路起着重要的支撑作用。火山引擎 EMR 基于火山引擎的 IaaS 能力,提供底层基础的大数据体系的计算引擎和存储引擎,并向上对接数据开发治理工具 DataLeap。如果用一句话来定义火山引擎 EMR 这个云产品,那就是“Stateless 云原生开源大数据平台”。...

Flink on K8s 企业生产化实践|社区征文

清理和重建:不像是虚拟环境以镜像进行分发部署起来对底层系统环境依赖小,所需要的包都可以集成到镜像中,重复使用。- 更好的隔离性与安全性,应用部署以pod启动,pod之间相互独立,资源环境隔离后更安全。- k8s集... **Stateful** - 有状态应用部署**Job**与**Cronjob**-离线业务## 2.2 Flink介绍Apache Flink 是一个框架和分布式处理引擎,用于在*无边界和有边界*数据流上进行有状态的计算。Flink 能在所有常见集群环境中运...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

Flutter SDK 全埋点

( pageID: 'page3-id', ), ], ignoreElementKeys: [], )).enablePageLeave().enableLog().enable(); super.initState(); } ... @override Widget build(BuildContext context) { return MaterialApp( navigatorObservers: RangersApplogNavigationObserver.wrap([]), initialRoute: '/', routes: { '/': ((context) => Home())...

Flutter SDK 全埋点

( pageID: 'page3-id', ), ], ignoreElementKeys: [], )).enablePageLeave().enableLog().enable(); super.initState(); } ... @override Widget build(BuildContext context) { return MaterialApp( navigatorObservers: RangersApplogNavigationObserver.wrap([]), initialRoute: '/', routes: { '/': ((context) => Home())...

Flutter SDK 全埋点

( pageID: 'page3-id', ), ], ignoreElementKeys: [], )).enablePageLeave().enableLog().enable(); super.initState(); } ... @override Widget build(BuildContext context) { return MaterialApp( navigatorObservers: RangersApplogNavigationObserver.wrap([]), initialRoute: '/', routes: { '/': ((context) => Home())...

Kubernetes 容器平台架构之道|社区征文

DaemonSet Controller 等控制器。**分布式的工作节点**,工作节点运行业务应用容器;默认会运行**三大核心组件:****Kubelet:** 与管理节点通信并触发指令执行,管理驱动网络,存储及容器运行时;**Kube Proxy:**... 重建或迁移等操作。![9f26ca0799372182c6932edfca14745f.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/64b6fdda70484ede9749b90adb0c5db5~tplv-k3u1fbpfcp-5.jpeg?)**从 Pod 启动过程来看**,Pod ...

容器编排技术 Kubernetes 学习总结|社区征文

你可以在不重建容器镜像的情况下部署和更新密钥和应⽤程序配置,也⽆需 在堆栈配置中暴露密钥。### 2.3 为什么是 Kubernetes?回归根本问题:why Kubernetes?- **可扩展性**Kubernetes 具有很好的可扩展性。K8s 内置一组资源,例如 Pod,Deployment、StatefulSets、Secrets、ConfigMaps 等,用户和开发人员也可以以“Custom Resource Definition”的形式添加更多自定义资源。 Kubernetes 可扩展性的另一种形式是开发人员具有...

工作区选择

建议您按照最大活跃时序上限评估和选择的工作区规格。您可以参照以下几个方案,来估算最大活跃时序数。 方案一:根据集群和业务规模进行估算集群指标 当您使用火山引擎容器服务(VKE)或自建 Kubernetes 集群环境时,容器资源、虚机资源和原生 Kubernetes 资源相关指标的数据量可以根据集群规模大致估算。假设您采集的指标包括:node-exporter、kubelet、cadvisor 和 kube-state-metrics,即 Kubernetes 默认采集的所有数据面指标,估算...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询