我想在imageUrl变量中看到指向我的图像的链接。

登录sampleImage时,会看到类似JSON的数据,并且可以在此数据的i部分中看到一个链接。

但是,当我登录imageUrl时,它将返回undefined

render() {
    const uid = '12345';
    const imageRef = firebase.storage().ref(uid).child(uid);
    const sampleImage = imageRef.getDownloadURL().then();
    const imageUrl = sampleImage.i;
    console.log(sampleImage);
    console.log(imageUrl);
    return (
        <View>
            <Image style={{ width: 55, height: 55 }} source={{ uri: null }} />
         </View>
    );
}
}

最佳答案

获取图像是网络请求,因此需要一些时间。如果要记录图像(并且不使用异步/等待),则必须在.then()内部进行记录

const sampleImage = imageRef.getDownloadURL().then(result => console.log(result));


而不是在render方法中执行所有这些操作,而是在组件安装并以状态存储URL时执行此操作。这样,您就可以在render方法中引用状态对象。

10-04 21:22