react-native - 带有签名 URL 的 React Native 图像褪色(谷歌云存储)
问题描述
我正在使用 asyncStorage 保存用户配置文件。当我从后端请求用户信息时,它会以不同的头像 url 但相同的图像进行响应。而 react native 重新渲染图像组件可能是因为 url 不同。它会导致图像淡出淡入效果。
下面是演示:
export default _ => {
const [user, setUser] = React.useState({})
React.useEffect(_ => {
_getUser()
}, [])
_getUser = async _ =>
{
const saved = await AsyncStorage('user')
if (saved)
setUser(JSON.parse(saved))
_fetchUser()
}
_fetchUser = async _ =>
{
const response = await fetch()
setUser(response)
await AsyncStorage.setItem('user', JSON.stringify(response))
}
return (
<View>
<Image source={{uri: user.avatar}} />
</View>
)
}
那么,如何防止重新渲染或淡入/淡出效果?
解决方案
尝试添加其他条件:
_getUser = async _ =>
{
const saved = await AsyncStorage('user')
if (saved) {
setUser(JSON.parse(saved))
} else {
_fetchUser()
}
}
推荐阅读
- node.js - Sequelize:定义关联
- shell - sed 命令替换制表符和空格分隔的文本行中的单词
- android - 不接受打包 Android SDK Build-Tools 的许可
- php - 如何在范围上使用自定义属性?
- python - 我怎样才能让我的帮助命令“重置”而不需要一百万个 wait_fors?不和谐.py
- java - 如何将包和类导出到 Java 应用程序中的测试模块?
- typescript - 使用条件类型的泛型函数中的返回类型问题
- python - pd.concat的copy=True有什么用?
- python - 如何使用 django rest 框架发送电子邮件
- google-colaboratory - ValueError: 层 model_1 需要 1 个输入,但它接收到 2 个输入张量