升级VxBuilder到2.5.0后出现参数类型不匹配报错如何解决?
修复方案
报错原因
VxBuilder 2.5.0 版本对 builder 入参的回调函数签名做了不兼容升级:旧版本只要求传入2个参数的回调,新版本要求必须传入3个参数的回调,参数顺序为 BuildContext 上下文、动态数据对象、VxStatus? 状态对象,和你现有代码的2参数回调类型不匹配,因此触发报错。
修复代码
你只需要给builder回调补充第三个忽略参数即可,无需修改原有业务逻辑,修改后的代码如下:
VxBuilder( builder: (context, _, __) { return '\$${_cart.totalPrice}' .text .xl4 .color(Theme.of(context).accentColor) .make(); }, mutations: {RemoveMutation}, ),
如果后续需要根据Vx的加载状态做不同视图渲染,也可以显式接收第三个参数使用,示例:
VxBuilder( builder: (context, data, VxStatus? status) { // 加载中状态展示加载动画 if (status == VxStatus.loading) { return const CircularProgressIndicator(); } // 异常状态展示错误提示 if (status == VxStatus.error) { return const Text("加载失败"); } // 正常状态展示总价 return '\$${_cart.totalPrice}' .text .xl4 .color(Theme.of(context).accentColor) .make(); }, mutations: {RemoveMutation}, ),
内容的提问来源于stack exchange,提问作者Himanshi Jain
相关产品推荐
相关产品推荐

