无法将参数类型“Object”分配给参数类型“ImageProvider<Object>”

use*_*875 8 if-statement flutter dart-2

我刚刚更新到 Dart2 和 Flutter sdk: '>=2.12.0 <3.0.0' 现在这个 if 语句中断了:

 decoration: new BoxDecoration(
              shape: BoxShape.circle,
              color: Colors.blueAccent,
              border: Border.all(
                  color: Colors.blueAccent,
                  width: 20.0,
                  style: BorderStyle.solid),
              image: new DecorationImage(
                fit: BoxFit.cover,
                image: myMarkerThumb != 'noImage'
                    ? NetworkImage(myMarkerThumb)
                    : AssetImage('assets/images/noImageAvailable.png'),
              ),
            ),
Run Code Online (Sandbox Code Playgroud)

不能将参数类型“Object”分配给参数类型“ImageProvider”。),

在此处输入图片说明

我只是从颤振开始,不知道去哪里找别的。

cro*_*x5f 19

嘿,这是目前我在使用 dart 2.12 的 flutter repo 中打开的一个问题

您可以在此期间制作的一个简单解决方法就是投射对象。


 decoration:  BoxDecoration(
              shape: BoxShape.circle,
              color: Colors.blueAccent,
              border: Border.all(
                  color: Colors.blueAccent,
                  width: 20.0,
                  style: BorderStyle.solid),
              image:  DecorationImage(
                fit: BoxFit.cover,
                image: myMarkerThumb != 'noImage'
                    ? NetworkImage(myMarkerThumb)
                    : AssetImage('assets/images/noImageAvailable.png') as ImageProvider,
              ),
            ),

Run Code Online (Sandbox Code Playgroud)

  • 不管怎样,非常感谢您的解决方法&lt;3,它很有魅力! (2认同)

小智 19

对于那些使用 Image.file 而不是 NetworkImage 的人,解决方案应该如下所示

image: (imageFile != null) ? FileImage(imageFile!) as ImageProvider : AssetImage("assets/xxx.png")
Run Code Online (Sandbox Code Playgroud)


ven*_*eno 6

一些在 open issue 中解决了投射到图像提供程序的问题

@AbdurrahmanElrayes

这个解决方案也适用于我

image: DecorationImage( 
   image: true ? NetworkImage('someNetWorkLocation.com') : AssetImage('assets/images/noImageAvailable.png') as ImageProvider 
),
Run Code Online (Sandbox Code Playgroud)

  • 太棒了,你节省了我的时间 (3认同)