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

Flutter FutureBuilder传入异步函数报类型不匹配错误如何解决?

类型错误修复说明

报错原因

  • Dart类型系统的提示差异非常明确:你传入的实参是返回Future的函数对象(类型为Future<List<Uint8List>> Function()),而FutureBuilder的future参数要求的是Future实例对象(类型为Future<List<Uint8List>>?),二者类型完全不匹配。你之前误以为类型一致,是混淆了函数本身和函数执行后的返回值。
  • 额外隐藏问题:你当前给builder参数直接传入了SizedBox实例,而builder要求传入的是签名为Widget Function(BuildContext, AsyncSnapshot<List<Uint8List>>)的回调函数,后续也会触发类型错误。

修正后代码

FutureBuilder<List<Uint8List>>(
    // 匿名函数末尾加()执行,拿到返回的Future实例
    future: () async {
      return <Uint8List>[
        (await rootBundle.load(Res.sign_wangwenshuo))
            .buffer
            .asUint8List(),
        (await rootBundle.load(Res.sign_welai))
            .buffer
            .asUint8List(),
      ];
    }(),
    // 按要求传入builder回调函数,处理不同加载状态
    builder: (context, snapshot) {
      if (snapshot.connectionState == ConnectionState.done && snapshot.hasData) {
        final signImages = snapshot.data!;
        // 此处替换为你自己的业务渲染逻辑
        return Row(
          children: signImages.map((img) => Image.memory(img)).toList(),
        );
      }
      // 加载中状态占位
      return const CircularProgressIndicator();
    }
)

内容的提问来源于stack exchange,提问作者guo deqing

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:45:03