如何在 flutter 中重用有状态的 widget

2024-04-26

我有一个以下状态完整小部件。我需要通过更改两个变量来重用它id and collectionName。一般来说,我会提取一个小部件,但在这种情况下,我正在修改变量firstName,这不会让我提取小部件。

class IndividualSignupPage1 extends StatefulWidget {
  static final id = 'idIndividualSignupPage1';
  final collectionName = 'Individual';

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

class _IndividualSignupPage1State extends State<IndividualSignupPage1> {
  String firstName;
  DateTime birthDate;
  final firestoreObj = Firestore.instance;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: GeneralAppBar(
        appBar: AppBar(),
      ),
      body: Container(
        child: Column(mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[
          TextField(
            onChanged: (value) {
              this.firstName = value;
            },
          ),
          Row(
            mainAxisAlignment: MainAxisAlignment.end,
            children: <Widget>[
              Expanded(
                child: Card(
                  child: ListTile(
                    title: Text(
                      this.birthDate == null
                          ? 'Birthdate'
                          : '${this.birthDate.year}-${this.birthDate.month}-${this.birthDate.day}',
                    ),
                    onTap: () {
                      DatePicker.showDatePicker(
                        context,
                        initialDateTime: this.birthDate,
                        onConfirm: (newDate, listOfIndexes) {
                          setState(() {
                            this.birthDate = newDate;
                          });
                        },
                      );
                    },
                  ),
                ),
              ),
            ],
          ),
          WFullWidthButton(
            name: 'Save',
            onPressedFunc: () async {
              // save all info to firestore db
              firestoreObj.collection(widget.collectionName).document('xyz').setData({
                'firstName': this.firstName,
                'birthDate': this.birthDate,
              }, merge: true);
            },
          ),
        ]),
      ),
    );
  }
}

Thanks


您可以将参数传递给类 individualSignupPage1,然后在其相应的状态类 _IndividualSignupPage1State 中使用属性“widget”。喜欢,

// pass the arguments from another class.
class IndividualSignupPage1 extends StatefulWidget {
  final String id;
  final String collectionName;

  IndividualSignupPage1(this.id,this.collectionName);

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

假设您想在其相应的状态类 _IndividualSignupPage1State 中使用 id 和 collectionName,您可以使用以下命令访问它"widget"财产如,

appBar: AppBar(title: Text(widget.id)), 
 **OR**
appBar: AppBar(title: Text(widget.collectionName)), 

Note:您只能访问widget仅限函数/方法内部的属性。

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

如何在 flutter 中重用有状态的 widget 的相关文章

随机推荐

  • webkit translate3d 问题(peek-thru)

    我正在使用 PhoneGap 构建一个 iOS 应用程序 我使用translate3d CSS 动画来创建 翻转 效果 这对于更简单的元素非常有用 带有前 后 div 的 DIV 可能还有一个或两个额外的跨度 但是当我尝试翻转更大的元素 即
  • 如何将C#中的时区信息转换为Java中的时区信息?

    我有一个系统 其中包含C 后端和一个Java前端 这C 后端与其他系统和一些移动设备通信 On the C 另一方面 我的任务之一是识别来自移动设备的时间戳的时区并创建相应的TimeZoneInfo目的 这是没有任何问题的工作 On the
  • AsyncResponse ConnectionCallback 在泽西岛中不会触发

    对于异步编程 Jersey JAX RS 提供了ConnectionCallback当连接断开时要执行的回调 来自泽西岛文档 https jersey java net documentation latest async html d0e
  • SymPy 中指数到三角函数的转换同时简化 - 一个顽固的表达式

    我一直在努力简化 exp 2 I N 1 2 exp 2 I N 1 2 4 exp 2 I N cos N 2 答案应该是 sin N 2 但输出与输入相同 我努力了 rewrite cos 然后简化 触发 扩展以及几乎所有我可以从帮助资
  • UIWebView中检测并拦截视频播放

    我想拦截 UIWebView 中的点击 然后使用视频的 URL 这怎么可能 我发现了一个有点类似的帖子 它指出了 webView shouldStartLoadWithRequest navigationType 代表 我似乎无法通过该委托
  • Android Eclipse 模拟器上的相机:

    我的笔记本电脑盖子上没有嵌入式摄像头 我将通过外部 USB 摄像头进行连接 模拟器运行时可以识别这个吗 我会实时显示 AVD 皮肤屏幕内的图像吗 在当前版本的模拟器 Ice Cream Sandwich API14 Linux 中 web相
  • 如何更改 MathJax 中数学的填充?

    就像 当我的 div 中有我的数学部分时 它看起来像这样 我将 div 的填充设置为0 那么 有没有办法改变数学填充的值呢 发现于here https stackoverflow com questions 11296415 how to
  • Python递归数据读取

    如果你曾经玩过 我的世界 下面的内容将会更有意义 由于你们中的许多人还没有 我将尽力解释它 我正在尝试编写一个递归函数 它可以找到从 Minecraft 食谱的平面文件中制作任何 Minecraft 物品的步骤 这个实在是让我难住了 平面文
  • [expr.ref]/1 中提到的脚注到底是什么意思?

    expr ref 1 http eel is c draft expr ref 1 A postfix expression followed by a dot or an arrow gt optionally followed by t
  • 执行正文 onload 事件后,在 WinForms WebBrowser 中获取 HTML 正文内容

    我在 WinForms 中有一个 WebBrowser 控件 其 URL 属性设置为外部网页 我还有一个用于 DocumentCompleted 事件的事件处理程序 在这个处理程序中 我试图获取特定元素 但 wb Document Body
  • 主机 LAN 上的 LXC 容器

    我的 LXC 容器通常与专用网络上的伪装桥配合使用 这次我想将容器放在主机的LAN上 但我无法得到任何结果 我在 debian 上使用 LXC 2 0 7 2 deb9u2 我参考了这个文档 LXC SimpleBridge https w
  • 用于停止表单提交的 JavaScript 代码

    停止表单提交的一种方法是从 JavaScript 函数返回 false 单击提交按钮时 将调用验证函数 我有一个表单验证的案例 如果满足该条件 我将调用一个名为的函数回到上一页 function returnToPreviousPage w
  • Google Developers Console:如何注册新应用程序?

    我正在努力追随本教程 https developers google com analytics solutions articles hello analytics api register project适用于 Google 的 Ana
  • npx create-next-app 命令不起作用 ENOENT 错误

    它显示了这个错误 我正在使用 npx 仍然显示使用纱线 当我将它用于反应应用程序时 npx 工作正常 它应该为我提供下一个应用程序启动器 临时修复可能是 npx create next app latest use npm 以便 creat
  • 如何使用 javascript 在 Whatsapp 上共享图像和文本

    你好 到目前为止 我可以使用 javascript 代码在 Whatsapp 上分享我的内容 但仍然无法分享带有文本的图像 有人做过吗 这是我的 JavaScript 代码 document ready function document
  • std::tr1::shared_ptr 是如何实现的?

    我一直在考虑使用共享指针 并且我知道如何自己实现一个 不想这样做 所以我正在尝试std tr1 shared ptr 我有几个问题 引用计数是如何实现的 它使用双向链表吗 顺便说一句 我已经用谷歌搜索过 但找不到任何可靠的东西 使用过程中有
  • 将命令行参数传递给已运行的应用程序实例

    我想将应用程序新实例的命令行参数传递给已经运行的应用程序 如果存在 到目前为止 我已经尝试了以下方法 程序 cs string Arguments Environment GetCommandLineArgs int iCurrentPro
  • 以编程方式将音乐文件访问到我的应用程序中

    如何以编程方式将设备中的音乐文件访问到我的应用程序中 另一种方法可能是使用 MediaStore 内容提供程序来查找您的音乐 http developer android com reference android provider Med
  • 如何查看大 JSON 对象是否包含值?

    我正在使用 PHP 对大量多维事件数组进行 json 编码 所以我得到如下内容 var ents 7 event id 7 nn The Whisky Drifters nn url the whisky drifters venue Th
  • 如何在 flutter 中重用有状态的 widget

    我有一个以下状态完整小部件 我需要通过更改两个变量来重用它id and collectionName 一般来说 我会提取一个小部件 但在这种情况下 我正在修改变量firstName 这不会让我提取小部件 class IndividualSi