當項目中需要給多項數據循環添加輸入框時,這個時候需要去創建TextField並綁定controller的值。
解決方案一:
比如一個model:
class Task{
…
String remark;//要給每個添加的controller綁定的值
…
String key;//唯一鍵 與數據無關
}
定義一個Map<String,TextEditingController>:
Map<String,TextEditController> _remarkControllers=new Map();
然後在獲取數據的時候:
for(Task task in ListTask){
task.key=new Uuid().v4();
_remarkControllers[task.key]=new TextEditingController(text:task.remark??"");
}
最後在循環創建的時候:
ListTask.map((t){
return Container(
child:TextField(
…
controller:this._remarkControllers[t.key]
…
),
);
});
提交數據的時候將 _remarkControllers[task.key].text的值傳給remark就可以了。