假设我正在调用一个提供随机尺寸图像的API。在渲染之前,我需要知道每个图像的宽度和高度,因为我需要对所需的精确布局进行一些计算。
使用Web Apis,我已经做到了,它工作正常:
const res = await fetch("https://picsum.photos/200/300");
const blob = await res.blob();
const img = new Image();
img.src = URL.createObjectURL(blob);
console.log(img.src);
img.onload = () => {
console.log(img.width, img.height);
};
问题在于,使用React Active,我们无权访问Web Api Image对象。Image是React Native上的组件。
这是我的位置:
const res = await fetch("https://picsum.photos/200/300");
const blob = await res.blob();
所以基本上二进制数据现在存储在RAM中,但是我找不到任何将这些数据解释为图像并获取尺寸的方法。
React Native Image组件具有内置的getSize方法。如果可以将blob转换为URI,则可以使用下面的代码。
Image.getSize(myUri, (width, height) => { console.log(width, height)});