我刚开始动手,正在制作个人资料页面,正在提出要求。我正在尝试创建一个编辑配置文件页面,以便每当我去那里时,textformfield的值都已准备好填写。起初,我认为使用占位符作为初始值会很好。但是我在想,这对用户体验不利。我希望textformfields填充正确的数据。因此,如果用户想要更新他的信息,则将填写这些字段。我正在发出http发布请求,并且获得了正确的值。但是我没有得到的奇怪的东西就是为什么我可以在labeltext中加载变量,但是我不能在initialvalue中加载它们...
我试图寻找一种解决方案,并且尝试了一个futurebuilder,但是我无法使其正常工作。我希望有人可以帮助我。
Expanded(
child: Container(
child: new TextFormField(
onSaved: (input) => _voornaam = input,
initialValue: '$voornaam',
decoration: InputDecoration(
labelText: '$voornaam'),
style: TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.bold),
),
),
flex: 2,
),
我希望在textformfield中获得$ voornaam的值。但是实际上,当我加载它时,它只是返回null。我的http请求正在工作,因为该值已放在labeltext中。如果有人
答案 0 :(得分:0)
您有错字,此代码应该有效:
void main() => runApp(MaterialApp(
home: App(),
));
class App extends StatefulWidget {
@override
_AppState createState() => _AppState();
}
class _AppState extends State<App> {
String _voornaam = 'Helo';
@override
void initState() {
super.initState();
// set you _voornaam value
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('text'),
),
body: Container(
child: new TextFormField(
onSaved: (input) => setState(() {
_voornaam = input;
}),
initialValue: '$_voornaam',
decoration: InputDecoration(labelText: '$_voornaam'),
style: TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold),
),
),
);
}
}
答案 1 :(得分:0)
将controller
添加到您的TextFormField
中,然后在initState
中将其初始化为初始值-_controller = TextEditingController(text: $voornaam);
。