flutter传递值到任意传递值到任意widget(当需要当需要widget嵌套使用需要传递值嵌套使用需要传递值
的时候的时候)
如果我们有这样一个应用场景:
WidgetA执行点击之后将数据通过widgetB传递到其下的widgetC。
通常可以通过设置构造函数,传递对应参数到制定的widget树中,如下面代码所描述:
表示需要将widgetA中的点击改变内容传递到widgetB中的widgetC中展示;
需要通过设置widgetB的构造函数,接收对应参数,再传递给widgetC展示;
class Inheritedwidget extends StatefulWidget {
@override
_InheritedWidgetState createState() => _InheritedWidgetState();
}
class _InheritedWidgetState extends State<Inheritedwidget> {
int count=0;
@override
void initState() {
// TODO: implement initState
super.initState();
}
@override
Widget build(BuildContext context) {
print(count);
return Scaffold(
appBar: AppBar(title: Text("inherited widget"),),body: Container(
child: Center(
child: Column(
children: <Widget>[
Text("class0"),
class1(count),
],
),
),
),
floatingActionButton: FloatingActionButton(onPressed: (){
return addCount();
},child: Text("add"),),
);
}
void addCount() {
setState(() {
count=1+count;
});
}
}
WidgetB:
class class1 extends StatelessWidget {
int count;
class1(this.count);
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: <Widget>[
Text("class1"),
class2(count),
],
),
);
}
}
widgetC:
class class2 extends StatelessWidget {
int count;
class2(this.count);
评论0
最新资源