返回类型“Widget?” 不是闭包上下文所要求的“小部件”

x86*_*x86 13 flutter flutter-layout

我正在使用消费者小部件来避免在空安全之前重新渲染,它工作得很好...但是当我将提供程序包升级到它时,它给了我一个错误,我上面提到它不接受ListView.builder()并说返回类型Widget?不是 a Widget,根据闭包上下文的要求


Consumer<GreatPlaces>(
        child: Center(
          child: const Text(
            'Got no places yet, start adding some',
          ),
        ),
        builder: (ctx, greatPlaces, ch) => greatPlaces.items.length <= 0
            ? ch
            : ListView.builder(          ***//Here I got error***
                itemBuilder: (ctx, index) => Center(),
                itemCount: 5,
              ),
      ),
Run Code Online (Sandbox Code Playgroud)

Md.*_*ikh 34

使用空断言!操作ch!

 data.state.length <= 0
          ? child!
          : ListView.builder(
              itemBuilder: (context, index) => Container(),
              itemCount: 4,
            );
Run Code Online (Sandbox Code Playgroud)

  • 您的解决方案解决了我在此代码上的问题: body: Consumer&lt;GreatPlaces&gt;( builder: (ctx, GreatPlaces, ch) =&gt; GreatPlaces.items.length &lt;= 0 ? ch! : ListView(), child: Center( child: const Text('还没有位置,开始添加一些!'), ), ), (2认同)
  • 对我来说也解决了 (2认同)