【发布时间】:2021-07-21 18:14:32
【问题描述】:
我有一个函数,捕获来自相机和画廊的图像,但是在选择图像或捕获照片时,我的函数返回对象时,我需要使用map(),以便它返回包含所有信息的数组图片的 URI 。在这种情况下我该如何实现 map()?
这是我的功能:
const [uriImg, setUriImg] = useState('');
function imagePickerCallback(data) {
if (data.didCancel) {
return;
}
if (data.error) {
return;
}
if (!data.uri) {
return;
}
setUriImg(data);
}
这是我调用函数的地方
<Image
source = {{
uri: uriImg
? uriImg.uri
: 'https://socialistmodernism.com/wpcontent/uploads/2017/07/placeholder-image.png?w=640'}}
style={styles.placeholderImage}
/>
<View style={styles.optionsCamera}>
<TouchableOpacity
style={styles.button}
onPress={() =>
ImagePicker.launchCamera({},imagePickerCallback)
}>
<Text style={styles.buttonText}>Abrir câmera</Text>
</TouchableOpacity>
<TouchableOpacity
style={styles.button}
onPress={() =>
ImagePicker.launchImageLibrary({},imagePickerCallback)
}>
<Text style={styles.buttonText}>Escolher imagem</Text>
</TouchableOpacity>
</View>
这是在选择或捕获图像、对象时出现在控制台中的内容。
LOG {"assets": [{"fileName": "rn_image_picker_lib_temp_bbd3b196-997f-4227-80aa-f0d86824969a.jpg", "fileSize": 622543, "height": 2289, "type": "image/jpeg" , "uri": "file:///data/user/0/com.francaservices/cache/rn_image_picker_lib_temp_bbd3b196-997f-4227-80aa-f0d86824969a.jpg", "width": 2289}]}
【问题讨论】:
-
如果你有一个 JS 对象,那么 .map() 不是一个函数。相反,我建议使用
Object.entries(...) -
如何使用 Object.entries (...)?我是 react-native 新手,我真的不知道如何使用它。
-
图像选择器一次只选择一个文件吗?如果是,试试这个
setUriImg(data.assets[0].uri) -
@Paloma 我会尝试发布答案