Flutterflow中plaid_flutter:^3.1.4初始化PlaidLink报错求助
问题背景
已成功获取有效Plaid Link Token,但在Flutterflow测试模式(桌面/移动浏览器)调用PlaidLink.open时触发上述错误,已按要求在web目录index.html添加官方JS链接但问题依旧。
自定义动作代码
import 'package:plaid_flutter/plaid_flutter.dart'; Future initPlaidLink() async { print('Initializing Plaid Link'); LinkConfiguration configuration = LinkTokenConfiguration( token: "link-sandbox-xxxxxxxxxxxxxxxxxxxxx", ); PlaidLink.open(configuration: configuration); }
报错信息
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'create') at plaid_flutter_web.PlaidFlutterPlugin.new.open (plaid_flutter_web.dart:97:20) at open.next (<anonymous>) at runBody (dart_sdk.js:39921:34) at Object._async [as async] (dart_sdk.js:39957:7) at plaid_flutter_web.PlaidFlutterPlugin.new.open (plaid_flutter_web.dart:35:20) at open (plaid_link.dart:36:21) at open.next (<anonymous>) at runBody (dart_sdk.js:39921:34) at Object._async [as async] (dart_sdk.js:39957:7) at PlaidLink.open (plaid_link.dart:35:27) at initPlaidLink (init_plaid_link.dart:32:13) at initPlaidLink.next (<anonymous>) at runBody (dart_sdk.js:39921:34) at Object._async [as async] (dart_sdk.js:39957:7) at Object.initPlaidLink (init_plaid_link.dart:13:21) at page7_add_account_widget.dart:33:21 at Generator.next (<anonymous>) at runBody (dart_sdk.js:39921:34) at Object._async [as async] (dart_sdk.js:39957:7) at page7_add_account_widget.dart:32:53 at [_invokeFrameCallback] (binding.dart:1297:15) at binding$5.WidgetsFlutterBinding.new.handleDrawFrame (binding.dart:1236:9) at [_handleDrawFrame] (binding.dart:1085:5) at Object.invoke (dart_sdk.js:193938:7) at _engine.EnginePlatformDispatcher.new.invokeOnDrawFrame (dart_sdk.js:168021:15) at dart_sdk.js:193679:57 at Object._checkAndCall (dart_sdk.js:5625:16) at Object.dcall (dart_sdk.js:5630:17) at ret (dart_sdk.js:61495:21)
排查方向
确认Plaid JS脚本加载时机与顺序
检查index.html中Plaid脚本是否放在<body>末尾(而非<head>),确保Flutter Web初始化前脚本已加载完成,示例脚本:<script src="https://cdn.plaid.com/link/v2/stable/link-initialize.js"></script>不要给脚本加
async/defer属性,保证同步加载完成后再执行Flutter代码。验证Flutterflow的Web构建配置
在Flutterflow的「Settings > Web App」中,确认自定义HTML代码已正确注入到index.html,未被平台过滤;右键测试页面查看源码,确认Plaid脚本存在,且浏览器控制台「Network」标签显示脚本HTTP状态码为200(加载成功)。检查plaid_flutter版本兼容性
确认plaid_flutter版本与Plaid Link JS版本匹配,比如最新版插件可能需要v3版本脚本:<script src="https://cdn.plaid.com/link/v3/stable/link-initialize.js"></script>可尝试降级/升级插件版本(参考pub.dev文档),排除版本不兼容问题。
测试非Flutterflow环境的Web运行情况
新建纯Flutter Web项目,复制相同的Plaid初始化代码并添加正确脚本,验证是否正常运行。如果纯Flutter环境正常,说明问题出在Flutterflow的特定配置上。清除Flutterflow测试模式缓存
强制刷新浏览器(Ctrl+Shift+R / Cmd+Shift+R),清除测试模式缓存,避免旧的未注入脚本的页面缓存导致问题;也可尝试使用「发布预览」模式测试。检查Link Token的环境匹配
确认使用的Link Token是sandbox环境的,与Plaid脚本环境一致;重新生成Link Token,确保token未过期或格式错误。
内容的提问来源于stack exchange,提问作者Ajit Raj

