flutter - 在小部件之间传递数据
问题描述
当按下按钮时,如何从 ChoiceChip 小部件中检索数据并将其传递给另一个小部件。
这是我的选择芯片
class ChoiceChipWidget extends StatefulWidget {
final List<String> reportList;
ChoiceChipWidget(this.reportList);
@override
_ChoiceChipWidgetState createState() => new _ChoiceChipWidgetState();
}
class _ChoiceChipWidgetState extends State<ChoiceChipWidget> {
String selectedChoice = "";
_buildChoiceList() {
List<Widget> choices = List();
widget.reportList.forEach((item) {
choices.add(Container(
child: ChoiceChip(
label: Text(item),
selected: selectedChoice == item,
onSelected: (selected) {
setState(() {
selectedChoice = item;
});
},
),
));
});
return choices;
}
@override
Widget build(BuildContext context) {
return Wrap(
children: _buildChoiceList(),
);
}
}
当按下按钮时,我想在这个小部件中传递它。
class AddCashForm extends StatefulWidget {
@override
_AddCashFormState createState() => _AddCashFormState();
}
class _AddCashFormState extends State<AddCashForm> {
List<String> chipList = [
"weekly",
"bi-weekly",
"monthly",
"once",
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: new COHAppBar().getAppBar(),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Row(
children: <Widget>[
ChoiceChipWidget(chipList),
],
),
RaisedButton(
child: Text("Update Cash Flow"),
onPressed: () {
setState(() {});
},
),
//Text('${widget.selectedChoice ?? "File is empty"}'), Data goes here
],
),
);
}
}
.....我是否需要添加一个构造函数以便在按下按钮时传递数据?如何在这些小部件之间传递数据
解决方案
您可以在按下事件时在 RaisedButton 中添加以下行:-
final Route route = MaterialPageRoute(builder: (context) => ChoiceChipWidget(true));
Navigator.push(mContext, route);
推荐阅读
- stanford-nlp - How to speed up the processing time of long article with StanfordCoreNLP (v3.9.2)
- android - 如何复制 Android 任务和 Backstack 文档中的示例?
- angularjs - AngularJS 1.5 "Could not resolve '___' from state 'home'"
- android - Android Gradle 无法构建也无法解析 R
- solr - Update all records in a solr column to "hello"
- javascript - 来自 Asp 核心控制器的 Api 没有收到 FormData.append(key,value) 附加的所有值
- output - Why are my Verilog output registers only outputting "x"?
- ruby - How to install/use Ruby gems in an AWS Lambda function?
- python - MACOS python package installation problem
- ruamel.yaml - 如何往返 ruamel.yaml 字符串,如“on”