我正在尝试将头像导入到我的应用程序中,无论它是否呈现,这都是一个真正的成功或失败。我的控制台日志是照片正在发送,但它并不总是显示出来。当它没有显示时,我会遇到这个错误:
TypeError:未定义不是对象(计算“response.photo_data.raw_data”)]
其中:'response.photo_data.raw_data‘是服务器,是承载图像数据的函数。
下面是我用来导入照片的代码,以及与配置文件相关的信息(也来自服务器)。任何建议都是有帮助的。我正在世博会管理的工作流中运行。
从服务器拉取数据到应用程序的函数
useEffect(() =>{
const displayPhoto = async () => {
let response = await
client_instance.download_profile_photo()
getImageData(response.photo_data.raw_data)
}
displayPhoto()}
照片在应用中的显示方式:
<View>
{imageData && <Avatar.Image source={{uri:`data:image/jpg;base64,${imageData}`}}/>}
</View>发布于 2021-06-30 07:18:17
如果photo_data不是response对象的属性,那么当您尝试访问它时,它将是undefined,因此在undefined上查找raw_data属性将导致此错误。如果raw_data不是photo_data对象的属性,那么当您访问它时,它也将是undefined。因此,您需要查看从服务器获得的响应,以了解为什么服务器有时会使用预期的属性进行响应,有时则不会。
简而言之,这似乎不是客户端代码的问题,而是您所调用的服务的响应的问题。因此,请使用可以查看原始服务响应的调试工具。也许服务在一些太大的图片上超时了?
https://stackoverflow.com/questions/68186613
复制相似问题