【发布时间】:2020-06-22 10:44:34
【问题描述】:
我持有一个包含 base64 编码图像数据作为状态的对象列表,因此我可以在列表组件中向用户显示它们。像这样的:
[
{
id: "23789373",
address: "92 West Sunnyslope Street Woodhaven, NY 11421",
thumbnail: "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYA...",
},
{
id: "91501148",
address: "62 North St Severn, MD 21144",
thumbnail: "yblAAAAHElEQVQI12P4//8/w38GE0DHxljNB...",
},
//...
]
问题是,base64 编码的数据似乎太长了,所以在拥有大约 5 个对象后,应用程序开始变慢。
我发现有人在 React-Redux 应用程序上遇到与我相同的问题,写了 medium article。她是这样解释的:
大量数据会不必要地使您的状态变得混乱,所有这一切都是因为您将完整的 base64 图像存储在您的存储中。当我使用这种方法只是为了“完成它”时,我很快意识到我的调试经验已经失控了。在一位同事的支持下,我们开始使用这个名为 createObjectURL 的漂亮小东西。这样做是创建一个包含引用图像的 URL 的 DOMString。这样,在我们的商店中,我们可以简单地保存这个普通的类似 URL 的引用,而不是一个巨大的数据块!
由于 React Native 中没有 createObjectURL 方法,有没有办法可以将图像存储在内存中,并使用 URI 作为状态?
【问题讨论】:
标签: react-native base64