gpt4 book ai didi

android - 如何在 Flutter 中将用户输入数据从一个页面传递到另一个页面?

转载 作者:行者123 更新时间:2023-11-29 05:20:45 25 4
gpt4 key购买 nike

我正在 Flutter 中编写一个应用程序,并尝试执行 2 页的注册过程。第 1 页是他们的电子邮件、密码和重复密码,第 2 页是有关他们帐户的其他详细信息。这是个人项目的一部分。

我正在尝试将数据从第一个注册页面传递到第二个注册页面。用户填写第二页并按注册后。然后整理数据并在身份验证和 FireStore 数据库中创建 FirebaseUser。

a) 这是正确的方法吗?又称为将数据从一页传递到另一页。然后完成注册,但如果用户在完成第二页之前就存在,那么他们还没有创建帐户。

b) 我是否应该只将第二页上的信息添加到第一页上创建的帐户中?对我来说这是有道理的,但我从可用性角度考虑,未完成完整注册过程的用户可能不想为他们设置帐户。

我已经尝试了无数关于将数据从一个页面传递到另一个页面的教程,但是我总是遇到与无效构造函数名称、常量错误相关的错误,或者我陷入了仅创建新对象并传递事物的兔子洞。

Signup.dart(第1页)

try {
await FirebaseAuth.instance.createUserWithEmailAndPassword(email: _email, password: _password)
.then((user) => {
Firestore.instance.collection('users').document(user.user.uid).setData({"email": _email, "password": _password}),
});
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => ExtraSignUpInfo()));

ExtraSignUpInfo.dart(第2页)

class ExtraSignUpInfo extends StatefulWidget {
@override
_ExtraSignUpInfoState createState() => _ExtraSignUpInfoState();
}

class _ExtraSignUpInfoState extends State<ExtraSignUpInfo> {
String _name;
String _company;
String _jobTitle;
String _teamName;
String _industry;
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();

@override
Widget build(BuildContext context) {

我希望将刚刚创建的用户发送到 ExtraSignUpInfo() 页面,以便稍后在填写 ExtraSignUpInfo() 页面表单字段后可以创建电子邮件和密码。

最佳答案

您可以尝试使用参数传递参数,并将其与命名路由调用一起发送到导航器,请参阅说明书上的此示例:

https://flutter.dev/docs/cookbook/navigation/navigate-with-arguments

1) 在第二个屏幕中,您必须创建 ScreenArguments 类,如下所示:

class ScreenArguments {
final String email;
final String password;

ScreenArguments(this.email, this.password);
}

2) 在第二个屏幕上启动变量:

  String email;
String password;

3)通过第一个屏幕上的按钮调用导航器(例如)发送值:

Navigator.pushNamed(context, "/secondScreen", arguments: email, password)

*将命名路由添加到您的 main.dart 中以使其正常工作。

4) 使用从 screen1 发送到 screen2 的值。

希望有帮助。

关于android - 如何在 Flutter 中将用户输入数据从一个页面传递到另一个页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58702575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com