【发布时间】:2021-10-05 14:06:17
【问题描述】:
我有这 3 个屏幕注册表单,第一个屏幕请求电子邮件、密码和确认密码,然后第二个屏幕请求其他用户信息,包括姓名、电话号码和地址,而最后一个屏幕是 OTP 确认页面
现在我想将输入到第一个屏幕的所有数据调用到第二个屏幕上,我将在将数据保存到数据库之前确认 otp 是否正确
这是注册模型:
class Registration {
int id;
String firstNmae;
String lastName;
String email;
String password;
int phone;
String address;
Registration({
this.id,
this.firstNmae,
this.lastName,
this.email,
this.password,
this.phone,
this.address,
});
}
Bellow 是我的控制器:
import 'package:get/get_state_manager/get_state_manager.dart';
import 'package:signuptest/models/RegistrationModel.dart';
class RegistrationController extends GetxController {
var registration = [];
}
在第一个注册屏幕上:
class SignUpForm extends StatefulWidget {
@override
_SignUpFormState createState() => _SignUpFormState();
}
class _SignUpFormState extends State<SignUpForm> {
final RegistrationController registrationController =
Get.find<RegistrationController>();
TextEditingController emailTextEditingController = TextEditingController();
TextEditingController passwordTextEditingController = TextEditingController();
TextEditingController cPasswordTextEditingController =
TextEditingController();
...
//First Screen Onpressed Function:
onpress: () {
if (_formKey.currentState.validate()) {
registrationController.registration.add(Registration(
email: emailTextEditingController.text,
password: passwordTextEditingController.text,
));
Navigator.pushNamed(context, CompleteProfileScreen.routeName);
}
现在在完整的配置文件屏幕“第二个屏幕”上,我尝试显示在第一个屏幕上填充的数据“电子邮件地址”,以确保它实际上保存了用户输入,但是当输入名称“email 或 emailTextEditingController”时,我的 VScode不要为我建议名字,当我直接输入它时,它下面会显示红线
第二屏代码 Bollow: 贝娄我尝试将“电子邮件”作为 Text() 小部件的值传递
class CompleteProfileForm extends StatefulWidget {
@override
_CompleteProfileFormState createState() => _CompleteProfileFormState();
}
class _CompleteProfileFormState extends State<CompleteProfileForm> {
final RegistrationController registrationController =
Get.put(RegistrationController());
...
@override
Widget build(BuildContext context) {
return Form(
child: Column(
children: [
Text(registrationController.registration.email), //I get a red line under the email which says..
...
我得到的错误:
getter 'email' 没有为类型 'List' 定义。尝试 导入定义“电子邮件”的库,将名称更正为 现有 getter 的名称,或定义一个 getter 或名为 '电子邮件'。
我想我叫错了还是什么
我已经看到很多关于相同问题的问题,但大多数都没有确定的答案,其次我不想将数据作为参数传递
【问题讨论】:
标签: flutter dart state-management flutter-getx