flutter - 使用 ChangeNotifier 开发应用程序的 Flutter MVVM 设计模式
问题描述
我是新来的颤振。我想使用 MVVM 设计模式在颤振中创建一个应用程序。我有 3 个屏幕,还需要 3 个 ViewModel。
屏幕 1 用于登录,其 ViewModel 是 LoginViewModel。屏幕 2 用于列出所有数据,屏幕 3 用于添加数据。
main.dart
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
return MaterialApp(
debugShowCheckedModeBanner: false,
home: MultiProvider(
providers: [
ChangeNotifierProvider<LoginViewModel>(create: (_) => LoginViewModel()),
ChangeNotifierProvider<DataViewModel>(create: (_) => DataViewModel()),
ChangeNotifierProvider<AddViewModel>(create: (_) => AddViewModel()),
],
child: SplashScreenOne(),
)
);
}
}
登录.dart
class LoginScreen extends StatefulWidget{
@override
State<StatefulWidget> createState() {
return _LoginScreenState();
}
}
class _LoginScreenState extends State<LoginScreen>{
TextEditingController _usernameController = TextEditingController();
TextEditingController _passwordController = TextEditingController();
Size size; // calculate screen size
@override
Widget build(BuildContext context) {
final vm = Provider.of<LoginViewModel>(context);
size = MediaQuery.of(context).size;
return _loginScreen();
}
当我运行我的应用程序时,它显示以下错误:
如何根据 ViewModel 为不同的屏幕添加 ChangeNotifier?
解决方案
推荐阅读
- javascript - javascript计时器倒计时仅来自db的最后一行
- c++ - typeid 导致不同的编译器
- php - 从子目录获取图像以显示
- c# - 无法隐式转换类型 - .NET Core
- confluence - 无法使用 REST API 在合流中移动页面
- c++ - constexpr 析构函数
- microsoft-graph-api - 为什么 Microsoft Graph API webhook 框架在发送通知时不一致?
- macos - 在范围内找不到摄影测量会话
- git - Git push 或 pull 似乎没有响应
- excel - Excel VBA表格操作:基于第一列转置列