Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 资源不加载,但在热加载时加载_Image_Flutter_Assets_Hot Reload_Flutter Hotreload - Fatal编程技术网

Image 资源不加载,但在热加载时加载

Image 资源不加载,但在热加载时加载,image,flutter,assets,hot-reload,flutter-hotreload,Image,Flutter,Assets,Hot Reload,Flutter Hotreload,我是个新手。我从后端获取图像,并使用Hero和FadeInImage在屏幕上显示这些图像。 我在图像中添加了超链接,并在点击API后生成了图像列表 child: Hero( tag: tag, child: FadeInImage( width: 130.0, height: 186.0, placeholder: Asset

我是个新手。我从后端获取图像,并使用Hero和FadeInImage在屏幕上显示这些图像。 我在图像中添加了超链接,并在点击API后生成了图像列表

child: Hero(
                tag: tag,
                child: FadeInImage(
                  width: 130.0,
                  height: 186.0,
                  placeholder: AssetImage('assets/images/splash1.png'),
                  fit: BoxFit.cover,

                  // onTap: _launchUrl(),

                  image: NetworkImage(
                      (merchant.logo)),
                  // fit: BoxFit.cover,
                ),
              ),
            ),
          ),
当我运行我的应用程序时,图像不会被加载;屏幕是空的。但当我热重新加载它显示

 ...List.generate(
            merchantsList.length,
            (index) {
              print(merchantsList.length);
              print(index);

              return MerchantCard(merchant: merchantsList[index]);

您可以使用占位符图像,也可以添加Future Builder概念,请检查Future概念

@override
Widget build(BuildContext context) {
   return new FutureBuilder(
   future: _loadImage(),
   builder: (BuildContext context, AsyncSnapshot<Image> image) {
   if (image.hasData) {
    return image.data;  // image is ready
   } else {
    return new Container();  // placeholder
     }
    },
  );
}
@覆盖
小部件构建(构建上下文){
返回新的FutureBuilder(
未来:_loadImage(),
生成器:(BuildContext上下文,异步快照映像){
if(image.hasData){
return image.data;//图像已就绪
}否则{
返回新容器();//占位符
}
},
);
}

问题实际上是小部件是在列表中填充值之前构建的。我在我的listPopulated函数中使用了setState,它工作得非常好。

生成后是否调用setState?否我的代码中没有setState我得到了这个消息,“引发了另一个异常:“NetworkImage”类型不是“Future?”类型的子类型,where”