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

Flutter/Dart:如何不使用双点运算符改写方法调用代码?

问题解决:不使用级联运算符改写BlocProvider创建代码

你的写法有两个关键错误:

  1. create 回调必须返回一个 ManageCostCubit 实例,但你的代码没有返回语句,导致回调返回void,不符合要求
  2. 在create内部还未将cubit注入到context中,调用context.read<ManageCostCubit>()找不到对应的实例

正确的改写方式是先创建cubit实例,调用目标方法后再返回该实例:

@override
Widget build(BuildContext context) {
  return BlocProvider(
    create: (context) {
      final cubit = ManageCostCubit(fakeLocalRepository);
      cubit.getAllCost();
      return cubit;
    },
    child: MaterialApp(
      // 补全你的MaterialApp剩余代码
    ),
  );
}

这种写法既避开了级联运算符,又满足BlocProvider对create回调的返回值要求,同时能正常调用getAllCost()方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 23:26:00