第一步:定义VM
class OneModel with ChangeNotifier{
int currentIndex = 0;
changeIndex(){
currentIndex = 1;
notifyListeners();
}
}
第二步:
runApp(
MultiProvider(
providers: [
ChangeNotifierProvider(create: (_)=>OneModel()),
],
child: MyApp(),),
);
缺少这步报错 Error: Could not find the correct Provider above this ConversationInner Widget 第三步:触发
onPressed: (){
Provider.of<OneModel>(context,listen: false).changeIndex();//1
context.read<StState>().changeTheme();//2
OneModel().bindBarkInfo();// 错误写法 这样也会执行bingBarkInfo()方法,但是不会更新渲染
},
第四步:渲染 1.Consumer用法
Consumer<OneModel>(builder: (context,onemodel,child){
return Text('${onemodel.currentIndex}');
}),
2.watch用法
Text('${context.watch<StState>().value}'),