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

使用top_snackbar_flutter 3.0.0时BuildContext无法赋值给OverlayState问题求助

解决top_snackbar_flutter 3.0.0参数类型不匹配问题

这个错误是因为top_snackbar_flutter 3.0.0版本更新了API,showTopSnackBar的第一个参数不再接受BuildContext,而是需要传入OverlayState。以下是两种可行的解决方法:

方法一:直接从Context获取OverlayState

将原来的context替换为Overlay.of(context),修改后的代码如下:

showTopSnackBar(
  Overlay.of(context),
  CustomSnackBar.success(
    message: "Good job, your release is successful. Have a nice day",
  ),
);

方法二:使用GlobalKey获取OverlayState(适用于特殊场景)

如果在某些无法直接通过当前context获取Overlay的场景(比如弹窗内部),可以通过全局的NavigatorKey来获取:

  1. 先定义一个全局的GlobalKey<NavigatorState>:
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
  1. 在你的MaterialApp中配置这个key:
MaterialApp(
  navigatorKey: navigatorKey,
  // 其他配置项...
);
  1. 调用showTopSnackBar时使用这个key获取OverlayState:
showTopSnackBar(
  navigatorKey.currentState!.overlay!,
  CustomSnackBar.success(
    message: "Good job, your release is successful. Have a nice day",
  ),
);

内容的提问来源于stack exchange,提问作者Kiran Jadhav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:10:10