我想要做的是我正在嘗試根據用戶的需要創建一個 texteditingcontroller 欄位。但問題是,當我列印或嘗試使用 value 時item.text,它顯示為 null。我該如何解決?
class TextEditingModel {
TextEditingController hint = TextEditingController(text: '');
TextEditingModel ({this.hint});
TextEditingModel hintchange(){
print(hint);
return hint;
}
}
List<TextEditingModel> texteditingcontrollers = [];
RaisedButton(
child: Text('Add Controller',
onPressed: (){
setState(() {
TextEditingModel model = TextEditingModel();
texteditingcontrollers.add(model);
});
},),
for(final item in texteditingcontrollers)
TextFormField(controller: item.hintchange()),
uj5u.com熱心網友回復:
在TextEditingModel在hintchange()它的回傳型別TextEditingModel,它應該是相同hint的資料型別。同時也喜歡在提示上有默認值和可選引數,比如
class TextEditingModel {
TextEditingController? hint;
TextEditingModel({this.hint});
TextEditingController hintchange() {
return hint ?? TextEditingController(text: '');
}
}
用例按照您的方式作業。
class Test extends StatefulWidget {
Test({Key? key}) : super(key: key);
@override
_TestState createState() => _TestState();
}
class _TestState extends State<Test> {
List<TextEditingModel> texteditingcontrollers = [];
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
for (final item in texteditingcontrollers)
TextFormField(controller: item.hintchange()),
],
),
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {
TextEditingModel model =
TextEditingModel(hint: TextEditingController(text: "Asda"));
texteditingcontrollers.add(model);
});
},
),
);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/334712.html
標籤:扑
