【发布时间】:2019-09-11 04:36:13
【问题描述】:
我正在尝试在一个列表中收集多个表单数据,然后将该列表传递到不同的屏幕。
问题是,列表只包含最后一个表单的数据
代码如下:
class _MyHomePageState extends State<MyHomePage> {
Map<String, dynamic> _formdata ={};
List _collection =[];
void _addcollections() {
setState(() {
_collection =List.from(_collection)
..add(_formdata);
});
print(_collection);
}
InputDecoration _decoration({String hint}) {
return InputDecoration(
hintText: hint,
labelText: hint,
border: OutlineInputBorder(
gapPadding: 4,
borderRadius: BorderRadius.circular(4),
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
TextField(
decoration: _decoration(hint: 'Name'),
onChanged: (val)=>_formdata['name']=val,
),
TextField(
decoration: _decoration(hint: 'Age'),
onChanged: (val)=>_formdata['age']=val,
),
TextField(
decoration: _decoration(hint: 'Sex'),
onChanged: (val)=>_formdata['sex']=val,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _addcollections,
tooltip: 'Increment',
child: Icon(Icons.add),
),
);
}
}
我正在打印我的列表集合的内容,这是我得到的结果。
first fab click: [{name: a, age: 1, sex: m}]
second fab click: [{name: b, age: 2, sex: f}, {name: b, age: 2, sex: f}]
【问题讨论】:
标签: dart flutter flutter-test