【发布时间】:2019-03-14 09:10:57
【问题描述】:
我对 Dart 和 Flutter 有疑问。所以我正在尝试重构一些代码,但我陷入了引用问题。
class _LoginPageState extends State<LoginPage> {
String _email;
String _password;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: new AppBar(
title: new Text("Login Page"),
),
body: new Container(
padding: new EdgeInsets.all(16),
child: new Form(
child: new Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: buildInputs()
)),
));
}
Widget buildInput(String label, String val) {
return new TextFormField(
decoration: new InputDecoration(
labelText: label,
),
validator: (value) => value.isEmpty ? "$label can't be empty" : null,
onSaved: (value) => val = value,
);
}
List<Widget> buildInputs() {
return [
buildInput("Email", this._email),
buildInput("Password", this._password),
];
}
}
我正在尝试创建一个名为 buildInput 的函数,该函数将采用 2 个参数,一个是我表单中的标签,第二个是我要修改的实际变量。现在这是棘手的部分,出于某种原因,我不知道为什么......但我的变量永远不会设置为正确的值,它总是 null。
知道如何通过函数传递参数,以便在函数体中进行修改,以及在函数调用完成后保持药物治疗的参数吗?
【问题讨论】: