如何在 Flutter 中将数据从子 Stateful widget 传递到 Parent Widget

2024-02-23

我的 flutter 应用程序中有一个有状态的小部件“DayPicker”。相同的代码是:

class DayPicker extends StatefulWidget {
  @override
  _DayPickerState createState() =>
      _DayPickerState();
}

class _DayPickerState extends State<DayPicker> {
  final values2 = List.filled(7, false);
  @override
  Widget build(BuildContext context) {
    var ht = MediaQuery.of(context).size.height;
    return Column(
      mainAxisSize: MainAxisSize.min,
      children: <Widget>[
        SizedBox(
          height: ht / 40,
        ),
        Text(
          'Selected Day(s): ${valuesToEnglishDays(values2, true)}',
          style: TextStyle(fontSize: ht / 40, fontStyle: FontStyle.italic),
        ),
        WeekdaySelector(
          onChanged: (v) {
            setState(() {
              values2[v % 7] = !values2[v % 7];
            });
          },
          values: values2,
          selectedFillColor: Colors.amber,
          selectedColor: Colors.black,
          selectedShape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(5),
          ),
          shape: RoundedRectangleBorder(
            side: BorderSide(color: Colors.red.withOpacity(0.5)),
            borderRadius: BorderRadius.circular(25),
          ),
        ),
      ],
    );
  }
}

该小部件用于选择一周中的几天,如下所示:

我希望将日期列表传递到我的父小部件中,即使用 DayPicker() 的小部件,以便我可以将此列表存储到 Firebase Firestore。我怎样才能做到这一点? 对于无状态小部件,有一种使用回调将数据从子级传递到父级的方法,但我想知道在这种情况下如何传递数据。


您也可以使用回调来处理这种情况。你需要像这样使用它widget.callback(value)它正在改变孩子的数据。运行下面的代码片段并自行检查。


class AppX extends StatefulWidget {
  final String province;
  const AppX({
    Key? key,
    required this.province,
  }) : super(key: key);

  @override
  State<AppX> createState() => _AppXState();
}

class _AppXState extends State<AppX> {
  double? sliderValue;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          Text("${sliderValue ?? 0}"), //handling null using defaul value
          Child(
            callback: (p0) {
              setState(() {
                sliderValue = p0;
              });
            },
          )
        ],
      ),
    );
  }
}

class Child extends StatefulWidget {
  const Child({
    Key? key,
    required this.callback,
  }) : super(key: key);

  final Function(double) callback;

  @override
  _ChildState createState() => _ChildState();
}

class _ChildState extends State<Child> {
  double _sliderValue = 0;

  @override
  Widget build(BuildContext context) {
    return Slider(
      value: _sliderValue,
      onChanged: (value) {
        widget.callback(value);
        setState(() {
          _sliderValue = value;
        });
      },
    );
  }
}

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

如何在 Flutter 中将数据从子 Stateful widget 传递到 Parent Widget 的相关文章

  • 路径中包含空格的 Firestore 安全规则

    我需要为名为 测试用例 的子集合创建一个 firestore 规则 由于 firestore 规则不是用 javascript 编写的 因此我似乎无法在匹配后获取路径来接受空格而不会出现错误 我尝试过引号 转义字符的反斜杠 以及将整个路径放
  • Flutter - 删除 ListView 中项目之间的空间

    我正在使用 ListView builder 函数来创建项目列表 然而 iOS 中每个项目之间的空间很大 截图 你知道如何删除项目吗 看来是默认的 因为我没有添加它 code 列表显示 return Scaffold body ListVi
  • 如何使用 Dart 将列表拆分或分块为相等的部分?

    假设我有一个类似的列表 var letters a b c d e f g h 我想要一个列表 每个列表包含 2 个元素 var chunks a b c d e f g h 使用 Dart 执行此操作的好方法是什么 这是另一种方法 var
  • Flutter如何post json数组

    如何在 json 数组下面发布 LstUserOptions OptionID ca339e40 10cc 4459 b9ec 07f7df0f4c69 我找到了解决方案 List
  • 我可以更改 Firestore 中文档的名称吗?

    我目前正在开发一个应用程序 我必须从 Google 的 Firestore 检索数据 我的数据结构如下所示 users email protected cdn cgi l email protection more data 有没有办法让我
  • flutter 动态查询 Firebase Firestore

    我正在创建一个视图 用户可以在其中选择多个元素 然后 通过在按钮上执行 onTap 这应该生成查询并在其他视图上显示查询结果 我的挑战是确保我获得用户选择的所有条件 然后使用多个字段值构建查询 我应该执行一个查询 然后对该查询进行查询等等
  • 如何检测flutter网站是否在浏览器后台运行?

    WidgetsBindingObserver 不适用于我的 flutter web 项目 是否有类似的东西可以检测用户何时关闭浏览器 例如使用 widgetbinding 关闭本机设备应用程序 我想在每次重建浏览器后重建整个网站 无论网站之
  • 如何从cloud firestore获取数据,其中user.uid等于flutter中的文档id?

    我有一个显示用户信息的个人资料屏幕 用户经过身份验证后 我将数据存储在云 Firestore 中 文档 ID 等于用户 ID 现在 我想从 cloud firestore 检索数据 当前 userId 等于文档 id 现在我有这个 clas
  • _CastError(类型“String”不是类型转换中“List”类型的子类型)

    我已经采取了各种方法来创建缓存的产品列表 然后用列表显示 但到目前为止仍然不起作用 任何人都可以帮助我 我的 Json fromCache id 2911 nama Abcd1 url myUrl id 2910 nama Abcd2 ur
  • 以编程方式更改小部件布局

    假设我有两个小部件布局 Layout1 和 Layout2 小部件的默认值是 Layout1 但我允许用户选择 他们希望小部件采用哪种布局 所以如果用户更改为 Layout2 如何以编程方式将布局更改为 Layout2 小部件没有像活动那样
  • 无法禁用 Firestore 中的离线数据

    从我的数据中删除数据后Firestore Database 这需要我的Android app一段时间后才意识到数据已被删除 我认为这是由于自动数据缓存而发生的 我的应用程序与离线使用无关 我想禁用此功能 我已将其添加到我的自定义中Appli
  • 水平翻转动画 ImageWidget Flutter

    I want to do Horizontal flip animation for CircularAvatar widget like below animation Like this i want to flip circularA
  • 颤动相机显得拉伸

    我一直在玩颤振 到目前为止我很喜欢它 但我在让相机工作时遇到了问题 我按照本页上的说明进行操作https pub dartlang org packages camera https pub dartlang org packages ca
  • 如何在flutter app android中添加Startapp广告?

    我想用其他广告更改 AdMob 广告 一些个人问题 如何在flutter app android中添加Startapp广告 有什么方法可以将启动广告添加到我的 flutter 应用程序 android 中 StartApp 现已更名为 St
  • 未处理的异常:MissingPluginException 错误抖动

    我正在使用 Permission handler 包并收到此错误 ERROR flutter lib ui ui dart state cc 209 Unhandled Exception MissingPluginException No
  • 保留选项卡视图页面之间的状态

    issue 我有两个ListViews渲染内部TabBarView用一个TabController 我如何在每个之间保留状态 由于缺乏更好的词 ListView这样 1 小部件不会重建 2 ListView选项卡之间的位置会被记住 相关代码
  • Firestore:使用 python 列出文档的子集合

    是否可以使用 python 列出文档的子集合 看来google文档不一致 这里他们说 get collections 方法在 Python 客户端库中不可用 https firebase google com docs firestore
  • 如何在flutter插件中调试iOS原生代码?

    我想知道如何在插件中调试 flutter iOS 代码 我可以打开每当您创建插件时生成的示例应用程序 但我将插件代码视为二进制框架 因此我无法调试它 对于 android 这相当简单 我只需打开 A S 中的 android 文件夹即可 插
  • Android 的 Firestore 超时

    我目前正在构建一个应用程序 将用户的博客文章保存在Firestore服务器 一切正常 但我发现该帖子在不稳定的互联网连接下无法上传 我尝试设置一个超时到Firestore实例 但 Firestore 库似乎没有超时选项 问题是 由于没有超时
  • 如何将数据记录到Flutter控制台?

    我是一名初学者 正在使用 IntelliJ IDEA 我想将数据记录到控制台 I tried print and printDebug 但我的数据没有显示在 Flutter 控制台中 如果你在 Flutter 中Widget 您可以使用de

随机推荐

  • 有没有办法关闭 WebDriver 或 Protractor 中的选项卡?

    有没有办法通过 Protractor 或 WebDriver 物理关闭选项卡 我问是因为虽然我知道如何切换标签 https stackoverflow com questions 26798020 protractor switch to
  • 如何将多个图像上传到 Firebase Storage 并返回多个 downloadURL

    我们正在开发一个简单的电子商务应用程序 我们需要上传多个产品图片 使用 Vuejs 和 Vue Croppa 我们需要将图像上传到 firebase 存储 检索下载 URL 然后在将该产品添加到数据库时将这些 URL 包含在数组中
  • 使用从 ramda 中的原始属性派生的新属性来转换对象

    变换以下对象的最简单方法是什么 original name bob age 24 result name bob age 24 description bob is 24 years old 我可以使用 Lens 来更新单个属性 例如增加年
  • 如何在php中解密sha1?

    下面我使用 sha1 加密了一个字符串变量 现在我希望使用 sha1 函数解密数据 但我要去某个地方 请有人站出来以正确的方式指导我 下面是我的代码 我得到这样的输出 tiger 46e3d772a1888eadff26c7ada47fd7
  • 类型别名的范围是什么?

    Typescript 类型别名的范围是什么 我有这个别名 我想我可能想以某种方式在全球范围内声明它 type ResouceResult
  • 熊猫和 AWS Lambda

    有人有与 AWS Lambda 兼容的完全编译版本的 pandas 吗 搜索了几个小时后 我似乎找不到我要找的东西 而且关于这个主题的文档也不存在 我需要在 lambda 函数中访问该包 但是我未能成功地使该包正确编译以在 Lambda 函
  • 如何从 json 文件中删除 json 对象?

    我想从此 json 文件中删除年龄using org json or com googlecode json simple 假设这个 json 对象位于文件 test json 中 age 100 name mkyong com messa
  • 现代浏览器仍然限制并行下载吗?

    In 这篇雅虎文章 http yuiblog com blog 2007 04 11 performance research part 4 从 2007 年开始 作者认为静态资源应该分布在不同的主机名上 因为浏览器遵循 HTTP 1 1
  • 组件输入更改父级中传递的值

    据我了解 Input组件中的字段应该是单向的 父级到子级 但是 我有一个值要传递给Input然后在组件中修改它 但我注意到它在父级中也发生了变化 这对我来说是有道理的 因为对象是通过引用传递的 但我猜这意味着 Angular 设置的整个 单
  • 针对 Java 5 和 Java 6 的即时、内存中 Java 代码编译

    如何从 Java 5 和 Java 6 中的任意字符串 在内存中 编译 Java 代码 加载它并在其上运行特定方法 预定义 在你对此进行讨论之前 我查看了现有的实现 大多数依赖于 Java 6 编译器 API 那些不这样做的人 只能依靠技巧
  • Heroku:帐户无权访问应用程序

    我试图git pull heroku master 但我得到了 Your account email protected cdn cgi l email protection does not have access to app name
  • tailwindcss:强制 tailwind 使用兼容的 RGB 语法?

    我正在使用 tailwindcss 移植一个应用程序以与 IE11 一起使用 不幸的是 tailwindcss 坚持使用现代技术生成颜色W3C CSS 颜色模块级别 4 rgb https drafts csswg org css colo
  • 加载新键盘时从数字键盘上删除“完成”按钮

    好吧 我会尽力解释这一点 我有一个 iPhone 应用程序 它有一个文本字段 用户只能输入数字 那里不是问题 但是 数字键盘上没有完成按钮 所以我无法让它消失 我可以制作一个按钮 用户按下该按钮即可关闭键盘 但我宁愿有一个完成按钮 因为屏幕
  • Eigen static libaligned_free“双重释放或损坏”

    这是一个延续较早的帖子 https stackoverflow com questions 70788173 eigen static lib memory align 但这一次希望有一个更好的例子 设置向量时 这个简单的测试会崩溃 我正在
  • 使用 DotNetZip 库解压包含非 ASCII 字符的文件

    我正在尝试使用 DotNetZip 库解压缩文件 该文件包含带有丹麦语字符 的文件夹和文件 TotalCommander 7Zip Windows 自己的 zip 都能正确提取文件 但 DotNetZip Library 会破坏丹麦语字符
  • MVC4 FoolProof 数据注释 - 如何检查该字段不等于零?

    我正在尝试使用 MVC Foolproof 库来验证我的模型并分别显示错误消息 但是 当我使用万无一失的验证时 单击提交按钮时 即使常规验证也不会显示 我的要求是我有一个数字文本框 它不应该为空或零 文本框值是根据从前面的下拉列表中选择的值
  • 如何将变量从控制器传递到视图 joomla mvc

    根据此示例 如何将变量从 joomla 子控制器传递到视图 class MYControllerControllerParser extends JController public function construct default a
  • 如何仅序列化.Net 中的某些属性?

    这是一个 Web 项目 所以我有几个继承自 Web UI 的类 我只想序列化非常特殊的属性 基本上 只有本地属性 我知道 XMLIgnore 属性可以放置在属性上以忽略项目 但这在我的上下文中不起作用 因为这需要修改一堆我真的不想修改的东西
  • 使用 Woocommerce 中的元查询从任何地方排除特定产品

    我想从我的商店页面以及我的主页中排除来自给定城市的产品 在主页中我显示来自 flatsome UX Builder 的 woocommerce 商店小部件 不确定它是一个小部件 的产品 给定城市的产品不会出现在我的商店页面中 但它们仍然出现
  • 如何在 Flutter 中将数据从子 Stateful widget 传递到 Parent Widget

    我的 flutter 应用程序中有一个有状态的小部件 DayPicker 相同的代码是 class DayPicker extends StatefulWidget override DayPickerState createState g