热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

nativereact图片多选_reactnativeimagepicker集成,使用(选择,删除)

1.安装依赖yarnaddreact-native-image-pickerreact-nativelink2.适配安卓①.androidappsrcmainAndroidMani

1.安装依赖

yarn add react-native-image-picker

react-native link

2.适配安卓

①. /android/app/src/main/AndroidManifest.xml文件中添加权限

include ':react-native-image-picker'

project(':react-native-image-picker').projectDir = new File(settingsDir, '../node_modules/react-native-image-picker/android')

③ android/app/build.gradle文件的dependencies中添加

compile project(':react-native-image-picker')

④ /android/app/src/main/java/com/newredsj/MainApplication.java文件中导入包,方法

import com.imagepicker.ImagePickerPackage;

new ImagePickerPackage() //在getPackages方法添加

3.使用

① 设置option

const options = {

title: '选择图片',

cancelButtonTitle: '取消',

takePhotoButtonTitle: '拍照',

chooseFromLibraryButtonTitle: '图片库',

...........,

storageOptions: {

skipBackup: true,

path: 'images',

},

};

② 选择图片fn

showImagePicker () {

ImagePicker.showImagePicker (options, response => {

console.log(response);

if (response.didCancel) {

console.log ('用户点击了取消');

} else if (response.error) {

console.log ('ImagePicker 出错: ', response.error);

} else {

let source;

if (Config.isAndroid) {

source = {uri: response.uri, isStatic: true};

} else {

source = {uri: response.uri.replace ('file://', ''), isStatic: true};

}

let photobase = 'data:image/jpeg;base64,'+ response.data (需要base64上传得时候添加)

let imageArray = this.state.avatarSource;

let fileArray = this.state.upfileData;

imageArray.push (source);

fileArray.push(photobase)

this.setState ({

avatarSource: imageArray,

upfileData:fileArray

});

this.props._selectPhotoFun(this.state.upfileData)

}

});

}

③ 选择图片得renderView

_renderAddImage(){

return (

source={require ('../Image/Common/line.png')}

style={styles.image}

>

上传图片

)

}

④ 操作及展示renderView

_renderView = () => {

let arr = [];

if(this.state.avatarSource!=''){

for (let index = 0; index

arr.push(

source={this.state.avatarSource[index]}

style={styles.imageL}

imageStyle={{resizeMode: 'cover'}}

key={index}

>

onPress={this.deleteLoadedImage.bind (this, index)}

style={styles.rightDelButton}

>

)

}

return arr;

}

}

⑤ 删除就是简单得数组操作就不上代码了

⑥ 至于上传可用 fetch,axios 等。个人推荐npm:axios

最后效果图

其实开发过程中麻烦得也就是布局,其他操作看个人喜好,以及业务需求!

学习使人快乐,代码改变人生,新手上路,各路大神,不喜勿碰!求反馈!



推荐阅读
  • vue使用
    关键词: ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 本文讨论了将HashRouter改为Router后,页面全部变为空白页且没有报错的问题。作者提到了在实际部署中需要在服务端进行配置以避免刷新404的问题,并分享了route/index.js中hash模式的配置。文章还提到了在vueJs项目中遇到过类似的问题。 ... [详细]
  • 初识java关于JDK、JRE、JVM 了解一下 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 腾讯T3大牛亲自教你!2021大厂Android面试经验,经典好文
    本篇将由环境搭建、实现原理、编程开发、插件开发、编译运行、性能稳定、发展未来等七个方面,对当前的ReactNative和Flutter进行全面的分析对比, ... [详细]
author-avatar
O臭煊儿O
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有