如何将Future <dynamic>转换/转换为图像?

时间:2019-02-11 09:12:18

标签: dart flutter dynamictype

我具有获取

之类的图像的功能
dynamic imgBinary = _repository.fetchImage(productId);

我想将此添加到图像列表中

List<NetworkImage> listImages = new List<NetworkImage>();

就像

dynamic imgBinary = _repository.fetchImage(productId);
listImages.add(imgBinary);

如何投射?

2 个答案:

答案 0 :(得分:2)

好的,因此您可以尝试.then方法。

_repository.fetchImage(productId);是未来。

所以您可以尝试-

List<NetworkImage> listImages = List<NetworkImage>();
    Future<dynamic> imgBinary = _repository.fetchImage(productId);
    imgBinary.then((i){
    listImages.add(i);
    });

直接:

_repository.fetchImage(productId).then((i){
listImages.add(i);});

要从未来获得价值-我们可以使用:

async and await

或     您可以使用then()方法注册回调。将来完成时会触发此回调。

更多info

答案 1 :(得分:0)

编辑:anmol.majhail的答案更好

您的fetchImage方法需要返回未来,这里有一些伪代码作为指导

List<NetworkImage> listImages = new List<NetworkImage>();

Future<void> _fetchAddImageToList(int productId) async {
     //trycatch
    dynamic imgBinary = await _repository.fetchImage(productId);
    listImages.add(imgBinary);
}

Future<NetworkImage> fetchImage(int id) async {
    New NetworkImage img = new NetworkImage();
    //do your fetch work here
    return img;
}