FlutterFlow中使用Supabase查询行项触发编译错误求助
问题
在FlutterFlow中基于Supabase Realtime表开发实时计时器功能,全程无代码,使用Supabase v2原生功能。操作流程:
- 创建对应后端查询
- 配置「On Data Change」动作,计划将数据库返回的
countdownMs值赋值给App State变量,再用该变量重置计时器倒计时
运行时出现编译错误,错误日志如下:
62 packages have newer versions incompatible with dependency constraints. Try `flutter pub outdated` for more information. Launching lib/main.dart on Web Server in debug mode... Waiting for connection from debug service on Web Server... lib/pages/home_page/home_page_widget.dart:113:32: Error: The getter 'homePageBlindsRow' isn't defined for the class '_HomePageWidgetState'. - '_HomePageWidgetState' is from 'package:timer_test/pages/home_page/home_page_widget.dart' ('lib/pages/home_page/home_page_widget.dart'). Try correcting the name to the name of an existing getter, or defining a getter or field named 'homePageBlindsRow'. _model.countdownms = homePageBlindsRow!.countdownMs!; ^^^^^^^^^^^^^^^^^ Waiting for connection from debug service on Web Server... 38.7s Failed to compile application.
已做排查:
- Supabase设置和后端查询正常,移除动作后实时功能可正常运行
- 尝试在Timer组件执行相同操作、新建项目测试,问题依旧
- 核心问题:使用Supabase查询返回的行项时触发变量未定义错误
解决方案
错误根源是FlutterFlow未生成对应查询结果行的绑定变量,按以下步骤修复:
核对查询返回类型:打开Supabase查询配置,若需获取单条数据,必须将返回类型设为「Single Row」;若为多条数据则选「List of Rows」。
homePageBlindsRow是单条行的默认变量名,若选了List类型,变量名会是复数形式(如homePageBlindsRows),此时直接使用单条行变量就会报错。通过变量选择器赋值:配置「On Data Change」动作时,不要手动输入
homePageBlindsRow!.countdownMs!,而是在赋值步骤的变量选择器中,找到你创建的Supabase查询,从返回结果里直接选择countdownMs字段。手动输入的变量名大概率和FlutterFlow自动生成的不匹配,导致编译时找不到该变量。确认查询已绑定到页面:在页面的「Data Sources」面板中,检查你创建的Supabase查询是否已添加并启用,确保「On Data Change」触发时查询能正常返回数据。
重新生成代码并清理缓存:点击右上角「Regenerate Code」按钮,再通过「Tools」→「Clean Project」清理缓存后重新运行,避免代码生成延迟导致的变量缺失。
内容的提问来源于stack exchange,提问作者Felipe Ferreira
相关产品推荐
相关产品推荐

