当前位置: 首页 > 知识库问答 >
问题:

参数类型Object不能分配给参数类型ImageProvider

白芷阳
2023-03-14

我刚刚更新到Dart2和Flatter sdk:'

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

我只是从弗利特开始,不知道该去哪里找别的。

共有3个答案

邵星河
2023-03-14

在Dart中,动态是顶部类型(所有类型的超类型)和底部类型(所有类型的子类型),这取决于上下文。这意味着,例如,将具有String类型参数的函数分配到期望具有动态参数的函数类型的位置是有效的。

但是,在Dart 2中,使用的参数类型不是动态(或另一个顶级类型,如Object?)导致编译时错误。

要解决此类型错误,请尝试按类型参数强制转换

image: DecorationImage( image: true ? NetworkImage('someNetWorkLocation.com') : AssetImage('assets/images/noImageAvailable.png') as ImageProvider ),
仲孙兴平
2023-03-14

一些公开发行的人解决了向图像提供商播放的问题

@阿布杜拉哈迈内拉耶斯

而这个解决方案对我也管用

image: DecorationImage( 
   image: true ? NetworkImage('someNetWorkLocation.com') : AssetImage('assets/images/noImageAvailable.png') as ImageProvider 
),
辛盛
2023-03-14

嘿,这是目前我在飞镖2.12的颤振回购中打开的一个问题。

在此期间,你可以做一个简单的变通方法,就是投射对象。


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

 类似资料: