【问题标题】:Flutter get data from child widgetsFlutter 从子部件获取数据
【发布时间】:2021-07-12 08:16:13
【问题描述】:

“我的应用”中有一个注册部分,其中包含一个主页和 3 个小部件表单。表格 1 和表格 2 包含一些 TextFormField,在最后一页,我从用户那里得到了一些图片。用户,输入数据并点击主页上的下一步按钮,现在应该验证输入的数据,如果数据没有任何问题,最后将输入数据的请求发送到服务器和step++并转到下一个表格。

我的问题是如何完成这项工作并在主页上获取子表单数据?

【问题讨论】:

    标签: flutter flutter-layout


    【解决方案1】:

    您可以使用回调函数。例如 void 函数(字符串)

    class MainScreen extends StatelessWidget {
      const MainScreen({Key? key}) : super(key: key);
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Column(
            children: [
              YourFormWidget(
                onFirstNameChanged: (String firstName) {
                  print(firstName);
                },
                onLastNameChanged: (String lastName) {
                  print(lastName);
                },
              ),
              TextButton(
                onPressed: () {},
                child: Text("Submit"),
              )
            ],
          ),
        );
      }
    }
    
    class YourFormWidget extends StatelessWidget {
      const YourFormWidget({
        Key? key,
        required this.onFirstNameChanged,
        required this.onLastNameChanged,
      }) : super(key: key);
    
      final void Function(String) onFirstNameChanged;
      final void Function(String) onLastNameChanged;
    
      @override
      Widget build(BuildContext context) {
        return Column(
          children: [
            TextField(onChanged: onFirstNameChanged),
            TextField(onChanged: onFirstNameChanged),
          ],
        );
      }
    }
    

    【讨论】:

      【解决方案2】:

      这称为状态管理。 https://flutter.dev/docs/development/data-and-backend/state-mgmt/options

      我建议提供者。在主页中创建对象并在其中一个子 Widget 中更新。

      提供者https://flutter.dev/docs/development/data-and-backend/state-mgmt/simple的示例

      【讨论】:

        猜你喜欢
        • 2021-12-04
        • 2020-06-08
        • 2021-08-02
        • 2021-07-20
        • 2021-06-27
        • 1970-01-01
        • 1970-01-01
        • 2021-03-24
        • 2021-05-24
        相关资源
        最近更新 更多