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

我在Flutter中编写了一个应用程序,并试图写一个2个页面的注册过程,第1页是电子邮件,密码和重复密码,第2页是帐户的其他详细信息,

我试图将第一个注册页中的数据传递到第二个页面,一旦用户填写第二页并按下注册键,然后对数据进行整理,在身份验证和FireStore数据库中创建一个FirebaseUser 。

我试图将数据从一页传递到另一个页面,但是总是得到无效的构造函数。

Signup.dart (Page 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 (Page 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) {



时间:

通过使用参数传递参数并将它发送到导航器,可以尝试传递参数,请参见cookbook上的此例子:

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的值。

希望能帮上忙。

...