flutter 状态保持之provide
Posted pp-pping
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flutter 状态保持之provide相关的知识,希望对你有一定的参考价值。
代码:
1.
import ‘package:flutter/cupertino.dart‘;
class Counter with ChangeNotifier{
int num = 1;
increase(){
num ++ ;
notifyListeners();//加入监听者模式
}
}
2.
void main() {
var counter = Counter();
var providers = Providers();
providers..provide(Provider<Counter>.value(counter));//注册通知
runApp(ProviderNode(child: MyApp(),providers: providers,));
}
3.
child: Provide<Counter>(
builder: (context,child,counte){
return Text(//获取通知的数据
‘${counte.num}‘,
style: Theme.of(context).textTheme.display1,
);
},
)
4.
onPressed: (){//触发通知
Provide.value<Counter>(context).increase();
},
总结:
Provide 状态保持 类似于OC的通知
1.在需要保持的数据方法中注册通知者
xx 为方法名
xx(){
notifyListeners()
}
2.在main函数注册通知方法
yy 是方法对象名
var yy = xx();
var proders = Providers();
proders..provide(Provide<xx>.value(yy));
runApp(ProviederNode(child:MyApp(),provides:proders));
3.使用通知数据
zz 是任意的变量名 代表XX对象
aa 是XX下的变量
child:Provide<xx>(
builder:(context,child,zz){
return Text(
‘${zz.aa}’
)
}
)
4.触发通知
mm 是xx下的方法
onPress:(){
Provide.value<xx>(context).mm;
}
以上是关于flutter 状态保持之provide的主要内容,如果未能解决你的问题,请参考以下文章
flutter-保持页面状态(切换页面,页面还在原来的位置,不重新加载接口)