gpt4 book ai didi

flutter - 在第二页执行之前调用的回调函数

转载 作者:行者123 更新时间:2023-12-03 04:18:36 26 4
gpt4 key购买 nike

我的主页上有一个Container,它使用带有回调函数PageView的小部件onBookPlace作为 child 。

Container(
child: PageView(
onBookPlace: onBookPlace(
dateStart, dateEnd
),
),
)
在我的 PageView中,我具有 onBookPlace函数,当我按 onTap时应调用该函数
class PageView extends StatelessWidget {

final VoidCallback onBookPlace;

const PageView({Key key,this.onBookPlace})
: super(key: key);
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap:() {onBookPlace()},

);}}
但是这里的问题是我单击 GestureDetector小部件之前调用了我的函数。在 PageView的构造上调用它。
如何解决这个问题?我的意思是,仅当我单击 GestureDetector小部件时,才应调用该回调。
谢谢

最佳答案

我认为您应该传递对函数的引用,而不是立即调用它。因此,您可能应该删除()

Container(
child: PageView1(onBookPlace: onBookPlace)
)
编辑:
如果您想通过函数传递一些参数,则可以创建另一个函数作为回调传递。
例如,您可以使用匿名功能。
Container(
child: PageView1(onBookPlace: () => onBookPlace(dateStart, dateEnd))
)
基本思想是,当您要传递回调函数时,您要传递函数本身,而不是其结果。
通过在其中放置括号,您可以调用函数并传递其结果,而不是将引用传递给处理函数。

关于flutter - 在第二页执行之前调用的回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63870419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com