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

问题描述

我刚刚更新到 Dart2 和 Flutter sdk:'>=2.12.0

 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'),),

无法将参数类型“Object”分配给参数类型“ImageProvider”。 ),

enter image description here

我刚刚开始使用颤振,不知道去哪里找别的。

解决方法

嘿,这是我在 flutter repo 中使用 dart 2.12 打开的 issue

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


 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,),
,

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

@AbdurrahmanElrayes

这个解决方案也适用于我

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