为了创建返回TextFormField的可重用小部件,有没有办法将onSaved(值)传递给另一个在调用onSaved时需要更新的小部件? 我想我对这段代码已经差不多了,只是在将(值)添加到类中时出现了一个错误
class InputName extends StatefulWidget {
final TextEditingController controller;
final Function(value)? onSaved;
//this is where i get the error "Undefined class 'value' "
const InputName({Key? key, required this.controller, this.onSaved}) : super(key: key);
@override
State<InputName> createState() => _InputNameState();
}
class _InputNameState extends State<InputName> {
@override
Widget build(BuildContext context) { //inputNameWidget
return Padding(
padding: const EdgeInsets.only(left: 16.0, right: 16),
child: TextFormField(
keyboardType: TextInputType.text,
controller: widget.controller,
style: TextStyle(fontSize: 20, height: 0.6),
validator: (value) {
if(value!.isEmpty ){
return 'Please enter a name';
}else{
return null;
}},
onSaved: (value){
widget.onSaved?.call(value);
}
),
);
}
然后将值传递给另一个小部件:
InputName(controller: _nameController,
onSaved: (value){
_categoryName = value!;
},
),
Update个
class InputName extends StatefulWidget {
final TextEditingController controller;
final Function(String)? onSaved;
final Function(String)? validator;
const InputName({Key? key, required this.controller, this.onSaved, this.validator}) : super(key: key);
//then-->
validator: (value){
widget.validator;
},
onSaved: (value){
widget.onSaved;
}
//my other widget class
InputName(
controller: _nameController,
onSaved: (value) {
_categoryName = value;
},
validator: (value) {
if (value.isEmpty) {
return 'Please enter a name';
} else {
return null;
}
}),