import React, {Component} from 'react'; import { StyleSheet, Text, View, Image, ScrollView, TouchableOpacity, Dimensions } from 'react-native'; import SYImagePicker from 'react-native-syan-image-picker' const {width} = Dimensions.get('window'); export default class App extends Component { constructor(props) { super(props); this.state = { photos: [] }; } handleOpenImagePicker = () => { SYImagePicker.showImagePicker({imageCount: 1,isCrop:true, isRecordSelected: true}, (err, photos) => { console.log(err, photos); if (!err) { this.setState({ photos }) } }) }; /** * 使用方式sync/await * 相册参数暂时只支持默认参数中罗列的属性; * @returns {Promise} */ handleAsyncSelectPhoto = async () => { SYImagePicker.removeAllPhoto() try { const photos = await SYImagePicker.asyncShowImagePicker({imageCount: 1, isCrop: true, showCropCircle: true}); // 选择成功 this.setState({ photos: [...this.state.photos, ...photos] }) } catch (err) { // 取消选择,err.message为"取消" } }; handlePromiseSelectPhoto = () => { SYImagePicker.asyncShowImagePicker({imageCount: 3, enableBase64: true}) .then(photos => { console.log(photos); const arr = photos.map(v=>{ return { ...v, enableBase64:true} }); // 选择成功 this.setState({ photos: [...this.state.photos, ...arr] }) }) .catch(err => { // 取消选择,err.message为"取消" }) }; handleLaunchCamera = () => { SYImagePicker.openCamera({isCrop: true, showCropCircle: true, showCropFrame: false}, (err, photos) => { console.log(err, photos); if (!err) { this.setState({ photos: [...this.state.photos, ...photos] }) } }) }; handleDeleteCache = () => { SYImagePicker.deleteCache() }; render() { const {photos} = this.state; return (