You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter子Widget调用setState时VoidCallback回调函数未触发怎么办

核心问题

你在子组件触发回调的位置,仅引用了VoidCallback函数对象,没有实际执行该函数,因此父组件的逻辑不会被触发。

你子组件onChanged中的代码存在书写疏漏:

print('call callback');
widget.callback; // 此处仅访问函数对象,未执行

修复方案

在回调变量后添加括号,触发函数执行即可:

print('call callback');
widget.callback();

补充优化建议

  • 若后续回调可能被设为可选参数,可使用空安全调用写法避免空异常:widget.callback?.call()
  • 父组件当前把callback函数定义在build方法内部,每次组件重绘都会重新生成函数对象,建议提到类的成员方法层级,减少不必要的性能开销。

内容的提问来源于stack exchange,提问作者Younghak Jang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 15:18:00