flutter - flutter 地将数据传递给有状态的小部件

标签 flutter dart

我有点卡住了。我想将数据从 Controller 传递到要在其他类中使用的电子邮件字符串。如何从 Controller 获取数据并将其传递给有状态的小部件?

import 'package:jptapp/core/constants/colors.dart';

class LoginPageEmail extends StatefulWidget {
  String email;
  @override
  _LoginPageEmailState createState() => _LoginPageEmailState();
}

class _LoginPageEmailState extends State<LoginPageEmail> {
  final myController = TextEditingController();
  @override
  void initState() {
    super.initState();
  }
  @override
  void dispose() {
    myController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return TextField(
      controller: myController,
      keyboardType: TextInputType.emailAddress,
      decoration: InputDecoration(
        fillColor: MyColors.loginFieldColor,
        hintText: 'Email',
        contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
        border: OutlineInputBorder(borderRadius: BorderRadius.circular(32.0)),
      ),
    );
  }
}


最佳答案

有多种方法可以在小部件之间传递数据,一种方法是在按下页面时在构造函数中接受数据。如果要将数据向下传递到堆栈,另一种方法是调用Navigator.of(context).pop()时,它们是将数据传递到的可选参数结果。

选项1

Navigator.push(
              context,
              MaterialPageRoute(builder: (context) => ExamplePage(myController.text)),
            );

//On the page that is accepting the data
class ExamplePage extends StatefulWidget {
  String email;
  ExamplePage(this.email)
  @override
  _CheckBoxPageState createState() => _CheckBoxPageState();
}

选项2
Navigator.pop(context, 'Data');

final result = await Navigator.push(
      context,
      MaterialPageRoute(builder: (context) => ExamplePage()),
    );

希望您发现这对您有帮助,如果有其他我可以帮助您的信息,请告知我也可以研究Provider Package处理状态管理的出色软件包。

关于flutter - flutter 地将数据传递给有状态的小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61200290/

相关文章:

django - Flutter 向 Django API 发送一个以文件为正文的 POST 请求

Dart:获取泛型列表类型的子类型

flutter - Flutter:有没有办法通过放大和缩小来防止Marker缩放?并将它们重新定位到图像的绝对中心?

Flutter,如何以编程方式获取 Observatory 调试器 URL?

dart - 转换时间戳

javascript - Laravel和Flutter通知系统

firebase - 在 initState 中初始化变量

flutter - 如何在 Flutter 中添加多个相同类型的 ChangeNotifierProvider

flutter - 在 flutter 通中通过路线作为参数

Flutter:更改ListView.builder中选定按钮的背景颜色