android - 反应原生:JSON 值'' 类型的 NSNULL 不能转换为有效的 URL
问题描述
对于我目前正在开发的应用程序,我使用以下代码片段来访问设备照片库,然后替换屏幕上显示的默认图像。我将默认值设置为 null 应该没问题?这可以正常工作,Android
但是我在 iPhone 设备上收到此错误。
关于如何解决它的任何想法?(头像就是图片的样子)
state = {
user: {
name: "",
email: "",
password: "",
//Fix it!
//Works on Android for some reason? But fix the emulator error
avatar: null
},
errorMessage: null
};
handlePickAvatar = async () => {
UserPermissions.getCameraPermission()
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.Images,
allowsEditing: true,
aspect: [4, 3]
})
if(!result.cancelled){
this.setState({user: { ...this.state.user, avatar: result.uri} });
}
};
<View style={{position: "absolute", top: 45, alignItems: "center", width: "100%"}}>
<Text style={styles.greeting}>{'Hello!\nSign up to get started.'}</Text>
<TouchableOpacity style={styles.avatarPlaceholder} onPress={this.handlePickAvatar}>
<Image source={{uri:this.state.user.avatar}} style={styles.avatar}/>
<Ionicons
name="ios-add"
size={40}
color="#00d589"
style={{marginTop:6, marginLeft:2}}>
</Ionicons>
</TouchableOpacity>
</View>
由于“头像”设置为空的状态,我似乎只收到NSNULL 类型的 JSON 值无法在 iPhone 模拟器上转换为有效的 URL错误。我一直遵循这个 Youtube 教程直到 4:30 https://www.youtube.com/watch?v=UNFDILca9M8
有什么我想念的吗?我已经安装了所有软件包,但看不到问题所在。
解决方案
通过在 Image 标记本身内运行一个简单的空检查语句来解决。
推荐阅读
- r - R通过函数传递缺少的参数
- sql - 如何使用 Union 更新 SQL 表
- javascript - 我有一个问题,引导网格系统没有根据 getbootstrap 指南中指定的像素大小正确更改列
- javascript - 如何将相同的“选项”元素添加到两个不同的“选择”列表中?
- c# - 如果阻止,则无法将列表发送给其他人
- c++ - 为什么 C++ 没有标准化在整个容器上运行的算法重载?
- python-3.x - 如何到达 HTML 中的下一个元素
- html - 如何在 html/css 中将 div 的所有元素居中
- c - 拆分为多个文件时无法编译 CUDA 代码
- java - 多部分/混合块 MIME 响应:转换为单个文件