flutter 1.12 Provider 4.0 可以不必挂载到顶部节点使用

最近在开发app时遇到了一个图片选择的功能,在app端使用image_picker插件后出现了整页重绘造成的闪屏问题,所以就采用了官方推荐的 Provider 方式控制重绘,简单使用了 notify -> consumer 的方式,效果虽然达到了预期,但是随之而来的问题是Provider 组件在官方说明上要求挂载到顶部根节点,可是万一app中需要使用的notify 多了怎么办呢?毕竟有一些Notify 只是在当前页面使用而已,如果挂载到根节点,会不会造成性能下降和不必要的开销呢?果断尝试在页面的 ScaffoldWidget 中挂载,居然也起到效果了,记录一下,这样只要不是全局的,跨页面的数据交互,基本上可以减少很多开销。

 

class RegisterPage extends StatefulWidget {@overrideState createState() {return new _registerState();}
}class _registerState extends State<RegisterPage> {@overrideWidget build(BuildContext context) {final GlobalKey _formKey = new GlobalKey<FormState>();final size = MediaQueryData.fromWindow(window).size;print(size);return new Scaffold(key: UniqueKey(),appBar: new AppBar(title: new Text('注册'),centerTitle: true,backgroundColor: Color(0xFFCD0000)),body:new MultiProvider(providers: [ChangeNotifierProvider(create: (_) => PayCodeImageInfo()),],child: 【Widgets】));}
}

 

本文链接:https://my.lmcjl.com/post/18952.html

展开阅读全文

4 评论

留下您的评论.