设置简单的RNApp之后, 并从具有hasOwnProperty的cameraRoll中选择一些照片,我想删除所选的图像,并且我对select也做了相同的操作! 但是使用hasOwnProperty无法删除所选的图像! 拜托,有人可以用hasOwnProperty澄清从数组中删除或添加的人吗?
选择
selectPhoto(ind) {
let obj = this.state.selected_photos;
if (obj.hasOwnProperty(ind)) {
delete obj[ind];
} else {
obj[ind] = true;
}
this.setState({
selected_photos: obj
});
}
goPostForm() {
let photos_uri = [];
Object.keys(this.state.selected_photos).map((d, k) => {
photos_uri.push(this.state.photos[k].node.image.uri);
});
this.props.navigation.navigate("Post", {
image: "",
photos: photos_uri
});
}
删除
state = { delete_image:否, delete_photos:new Object(),};
deletePhoto(ind) {
let obj = this.state.delete_photos;
if (obj.hasOwnProperty(ind)) {
delete obj[ind];
} else {
obj[ind] = true;
}
this.setState({
delete_photos: obj
});
}
render() {
const { params } = this.props.navigation.state;
let image = params ? params.image : null;
let photos = params
? params.hasOwnProperty("photos")
? params.photos
: []
: [];
return (
<View
style={{ paddingTop: 100, paddingHorizontal: 30, flexDirection: "row" }}
>
{!image && photos.length > 0
? photos.map((d, k) => {
if (!this.state.delete_photos.hasOwnProperty(k)) {
return (
<View key={k}>
<Image
source={{ uri: d }}
style={{ resizeMode: "contain", height: 72, width: 72 }}
/>
<TouchableOpacity onPress={() => this.deletePhoto(k)}>
<Text>Delete image</Text>
</TouchableOpacity>
</View>
);
}
})
: null}