
我们想要在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);
如果您有任何问题,请告诉我:)
总结以上是内存溢出为你收集整理的android – Flutter中的MVVM设计模式全部内容,希望文章能够帮你解决android – Flutter中的MVVM设计模式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)