所以我的问题是我从第一个小部件中的 firebase 获取数据,然后我单击并通过 void 打开一个底部表 -> 另一个有状态小部件,我如何将快照数据从第一个小部件传递给另一个小部件?
下面的代码不起作用...
....
Widget build(BuildContext context) {
return Container(
ElevatedButton(
child: Text('Request a tour'),
onPressed: () {
displayBottomSheet(context, widget.snapshot.data()["author"]);
},
),
);
void displayBottomSheet(BuildContext context, String author) { //updated
showModalBottomSheet(
context: context,
builder: (ctx) {
return BottomSheetWidget(author); //updated
});
}
新错误:位置参数太多:预期为 0,但找到 1 个。
class BottomSheetWidget extends StatefulWidget {
final String author; //updated
BottomSheetWidget({this.author}); //updated
@override
class _BottomSheetWidgetState createState() => _BottomSheetWidgetState();
}
class _BottomSheetWidgetState extends State<BottomSheetWidget> {
Widget build(BuildContext context) {
return Container(
new ElevatedButton(
child: Text('Send'),
onPressed: () {
requestTour(widget.author); //updated
},
),
.....
}
requestTour(String userName) async {
...
}
答案 0 :(得分:1)
只需删除新到达错误的花括号:
将 BottomSheetWidget({this.author});
替换为 BottomSheetWidget(this.author);
答案 1 :(得分:1)
class BottomSheetWidget extends StatefulWidget {
final String author; //updated
BottomSheetWidget(this.author); //<-- remove {}
@override
class _BottomSheetWidgetState createState() => _BottomSheetWidgetState();
}
class _BottomSheetWidgetState extends State<BottomSheetWidget> {
Widget build(BuildContext context) {
return Container(
new ElevatedButton(
child: Text('Send'),
onPressed: () {
requestTour(widget.author); //updated
},
),
.....
}
requestTour(String userName) async {
...
}