android – Flutter中的MVVM设计模式
发布时间:2020-12-14 14:48:47 所属栏目:百科 来源:网络整理
导读:我们尝试开发一个颤动的应用程序,我们创建一个状态小部件作为页面. 我们想要在2个不同的文件中将构建函数与其他状态变量和状态函数分开,构建函数可以访问这个状态类 ?我们创建一个类: PageClassState extend StatePageClass{ string value = 'string value'
我们尝试开发一个颤动的应用程序,我们创建一个状态小部件作为页面.
我们想要在2个不同的文件中将构建函数与其他状态变量和状态函数分开,构建函数可以访问这个状态类 ?我们创建一个类: PageClassState extend State<PageClass>{ string value = 'string value'; } 并在一个可以访问此变量的PageClassState的新类中扩展它 PageClassView extend PageClassState{ @override Widget Build(){ return(new Text(this.value)) } } 但是在PageClassState中我们得到一个错误,说我们必须覆盖类中的构建方法.是否有任何建议来解决问题并在flutter中实现MVVM设计模式? 解决方法
我建议将ViewModel代码移动到一个不扩展State的单独类中.保持ViewModel平台独立.
您的窗口小部件状态可以包含viewModel的实例并与之交互. 你可以找到一个more detailed example here 如果子窗口小部件需要访问您的ViewModel,您可以使用@RémiRousselet建议的继承窗口小部件. class ViewModelProvider extends InheritedWidget { final ViewModel viewModel; ViewModelProvider({Key key,@required this.viewModel,Widget child}) : super(key: key,child: child); @override bool updateShouldNotify(InheritedWidget oldWidget) => true; static ViewModel of(BuildContext context) => (context.inheritFromWidgetOfExactType(ViewModelProvider) as ViewModelProvider).viewModel; } 子窗口小部件可以通过调用来获取ViewModel var viewModel = ViewModelProvider.of(context); 如果您有任何问题,请告诉我:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |