FormBuilder出现readOnly、attribute命名参数不存在报错如何解决?
报错原因
这两个报错均由flutter_form_builder依赖库的大版本破坏性更新导致:你2个月前使用的是3.x及更早版本的库,当前项目实际拉取的是4.0及以上的新版本,旧版本的核心参数在新版本中已被重命名或移除,因此触发参数不存在的报错。
对应解决方法
FormBuilder的readOnly参数报错:新版本已移除FormBuilder组件的全局readOnly配置参数,你可以选择两种调整方式:- 给所有表单项单独配置
readOnly属性,需要全局控制时可统一封装变量传递 - 不调整代码,直接固定依赖库的版本为旧版本
- 给所有表单项单独配置
FormBuilderTextField的attribute参数报错:新版本中该参数已重命名为name,直接把代码中的attribute: "emailFromUser"替换为name: "emailFromUser"即可,所有表单项的该参数都需要同步修改。
通用处理方案
你可以根据自己的需求二选一:
- 不想调整现有代码:在
pubspec.yaml中固定flutter_form_builder的版本为你之前使用的旧版本,示例如下:
dependencies: flutter_form_builder: 3.14.1
去掉版本号前的^符号避免自动升级大版本,执行flutter pub get后即可正常运行。
2. 需要使用新版本功能:按照新版本的API规范全量调整项目中的相关代码,除了上述两个参数,还要同步调整验证器、表单取值等相关逻辑的写法。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

