ImagePicker 图片选择器


图片选择器,一般用于上传图片前的文件选择操作,但不包括图片上传的功能

使用指南

Taro-UI 版本需要在 v1.5.0 以上,在 Taro 文件中引入组件

  1. import { AtImagePicker } from 'taro-ui'

组件依赖的样式文件(仅按需引用时需要)

  1. @import "~taro-ui/dist/style/components/image-picker.scss";
    @import "~taro-ui/dist/style/components/icon.scss";

一般用法

说明

  • 该组件为受控组件,开发者需要通过 onChange 事件来更新 files,files 与 onChange 函数必填

  • 该组件使用Taro.chooseImage实现选取图片,会受到Taro能力的制约,具体请参考Taro文档

  • 开发者可以获取 files 数据并通过 Taro.uploadFile 上传图片

  1. import Taro from '@tarojs/taro'
    import { AtImagePicker } from 'taro-ui'
    export default class Index extends Taro.Component {
    constructor () {
    super(...arguments)
    this.state = {
    files: [{
    url: 'https://jimczj.gitee.io/lazyrepay/aragaki1.jpeg',
    },
    {
    url: 'https://jimczj.gitee.io/lazyrepay/aragaki2.jpeg',
    },
    {
    url: 'https://jimczj.gitee.io/lazyrepay/aragaki3.png',
    }]
    }
    }
    onChange (files) {
    this.setState({
    files
    })
    }
    onFail (mes) {
    console.log(mes)
    }
    onImageClick (index, file) {
    console.log(index, file)
    }
    render () {
    return (
    <AtImagePicker
    files={this.state.files}
    onChange={this.onChange.bind(this)}
    />
    )
    }
    }

多选图片

  1. <AtImagePicker
    multiple
    files={this.state.files}
    onChange={this.onChange.bind(this)}
    onFail={this.onFail.bind(this)}
    onImageClick={this.onImageClick.bind(this)}
    />

自定义数量

  1. <AtImagePicker
    length={5}
    files={this.state.files}
    onChange={this.onChange.bind(this)}
    onFail={this.onFail.bind(this)}
    onImageClick={this.onImageClick.bind(this)}
    />

多种图片预览模式

  1. <AtImagePicker
    mode='top'
    files={this.state.files}
    onChange={this.onChange.bind(this)}
    onFail={this.onFail.bind(this)}
    onImageClick={this.onImageClick.bind(this)}
    />

参数

参数说明类型可选值默认值
files图片文件数组, 元素为对象, 包含属性 url(必选)Array-[]
mode图片预览模式,详见(微信开发者文档)[https://developers.weixin.qq.com/miniprogram/dev/component/image.html]String'scaleToFill'|'aspectFit'|'aspectFill'|'widthFix'|'top'|'bottom'|'center'|'left'|'right'|'top left'|'top right'|'bottom left'|'bottom right'aspectFill
showAddBtn是否显示添加图片按钮Boolean-true
multiple是否支持多选Boolean-false
count最多可以选择的图片张数,2.0.2 版本起支持Number0 ~ 99默认为1,当multiple为true时候,为99,此选项设置和multiple冲突时,以该项优先
sizeType所选的图片的尺寸,2.0.2 版本起支持Array-['original', 'compressed']
sourceType选择图片的来源,2.0.2 版本起支持Array-['album', 'camera']
length单行的图片数量Number-4

事件

事件名称说明返回参数
onChangefiles 值发生变化触发的回调函数, operationType 操作类型有添加,移除,如果是移除操作,则第三个参数代表的是移除图片的索引(files: Array, operationType: string, index: number) => void
onImageClick点击图片触发的回调(index: number, file: Object) => void
onFail选择失败触发的回调(msg: string) => void

ImagePicker图片选择器 - 图1