У меня есть login_screen
родитель, у которого password_textfield
как ребенок. Я хотел бы обновить значения email
и password
в родительском элементе при изменении данных дочернего элемента.
Родительский виджет:
EmailTextField(email, focus, (value) {
setState(() {
email = value;
});
})
Дочерний виджет:
import 'package:flutter/material.dart';
class EmailTextField extends StatefulWidget {
final FocusNode focus;
String email;
final Function onChange;
EmailTextField(this.email, this.focus, this.onChange);
@override
_EmailTextFieldState createState() => _EmailTextFieldState();
}
class _EmailTextFieldState extends State<EmailTextField> {
@override
Widget build(BuildContext context) {
return TextFormField(
onChanged: (value){
setState(() {
widget.email = value;
});
widget.onChange(value);
},
decoration: InputDecoration(labelText: 'Email'),
textInputAction: TextInputAction.next,
keyboardType: TextInputType.emailAddress,
onFieldSubmitted: (v) {
FocusScope.of(context).requestFocus(widget.focus);
},
);
}
}