在Flutter中,将视图(View)更新到模型(Model)是一项最佳实践。视图(View)是用户界面(UI)的组成部分,模型(Model)是应用程序的客观状态。在更新视图(View)时,我们必须确保将最新的状态反映到模型(Model)中,以确保应用程序的一致性和可靠性。
以下是如何在Flutter中从视图(View)更新模型(Model)的示例:
class UserModel {
final String name;
final int age;
UserModel(this.name, this.age);
}
class UserDetailView extends StatefulWidget {
final UserModel user;
const UserDetailView({required this.user});
@override
_UserDetailViewState createState() => _UserDetailViewState();
}
class _UserDetailViewState extends State {
TextEditingController _nameController = TextEditingController();
TextEditingController _ageController = TextEditingController();
@override
void initState() {
super.initState();
_nameController.text = widget.user.name;
_ageController.text = widget.user.age.toString();
}
@override
Widget build(BuildContext context) {
return Column(
children: [
TextField(
controller: _nameController,
decoration: InputDecoration(labelText: 'Name'),
),
TextField(
controller: _ageController,
decoration: InputDecoration(labelText: 'Age'),
),
ElevatedButton(
onPressed: () {
setState(() {
widget.user.name = _nameController.text;
widget.user.age = int.parse(_ageController.text);
});
},
child: Text('Save'),
),
],
);
}
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final user = UserModel('John Doe', 30);
return MaterialApp(
title: 'Flutter Demo',