导入第三方
scoped_model: ^1.1.0
注意!1.1.0支持flutter2.0 低版本可能不支持Flutter2.0
通过上篇博客知道了我们如果导入多个控件
通过构造方法交互数据将会变的冗余。
直接上代码
import 'package:flutter/material.dart';
import 'package:scoped_model/scoped_model.dart';class StateManagementDemo4 extends StatelessWidget {@overrideWidget build(BuildContext context) {return ScopedModel(model: CounterModel(),child: Scaffold(appBar: AppBar(title: Text("StatueManagementDemo"),elevation: 0.0,),body: ConunterWrapper(),floatingActionButton: ScopedModelDescendant(rebuildOnChange: false,builder: (context, _, model) => FloatingActionButton(child: Icon(Icons.add),onPressed: model.increaseCount,),),),);;}
}class ConunterWrapper extends StatelessWidget {@overrideWidget build(BuildContext context) {return Center(child: Counter(),);}
}class Counter extends StatelessWidget {@overrideWidget build(BuildContext context) {return ScopedModelDescendant(builder: (context, _, model) => ActionChip(label: Text('${model.count}'),onPressed: model.increaseCount,),);}
}class CounterModel extends Model {int _count = 0;int get count => _count;void increaseCount() {_count += 1;notifyListeners();}
}