ImagePicker 图片选择器

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

代码演示

简单的图片选择组件

  1. import { ImagePicker } from 'antd-mobile';
  2. const data = [{
  3. url: 'https://zos.alipayobjects.com/rmsportal/PZUUCKTRIHWiZSY.jpeg',
  4. id: '2121',
  5. }, {
  6. url: 'https://zos.alipayobjects.com/rmsportal/hqQWgTXdrlmVVYi.jpeg',
  7. id: '2122',
  8. }];
  9. class ImagePickerExample extends React.Component {
  10. state = {
  11. files: data,
  12. }
  13. onChange = (files, type, index) => {
  14. console.log(files, type, index);
  15. this.setState({
  16. files,
  17. });
  18. }
  19. render() {
  20. const { files } = this.state;
  21. return (
  22. <div>
  23. <ImagePicker
  24. files={files}
  25. onChange={this.onChange}
  26. onImageClick={(index, fs) => console.log(index, fs)}
  27. selectable={files.length < 5}
  28. />
  29. </div>
  30. );
  31. }
  32. }
  33. ReactDOM.render(<ImagePickerExample />, mountNode);

自定义选择图片的方法

  1. import { ImagePicker } from 'antd-mobile';
  2. const data = [{
  3. url: 'https://zos.alipayobjects.com/rmsportal/PZUUCKTRIHWiZSY.jpeg',
  4. id: '2121',
  5. }, {
  6. url: 'https://zos.alipayobjects.com/rmsportal/hqQWgTXdrlmVVYi.jpeg',
  7. id: '2122',
  8. }];
  9. class ImagePickerExample extends React.Component {
  10. state = {
  11. files: data,
  12. };
  13. onChange = (files, type, index) => {
  14. console.log(files, type, index);
  15. this.setState({
  16. files,
  17. });
  18. };
  19. onAddImageClick = (e) => {
  20. e.preventDefault();
  21. this.setState({
  22. files: this.state.files.concat({
  23. url: 'https://zos.alipayobjects.com/rmsportal/hqQWgTXdrlmVVYi.jpeg',
  24. id: '3',
  25. }),
  26. });
  27. };
  28. onTabChange = (key) => {
  29. console.log(key);
  30. };
  31. render() {
  32. const { files } = this.state;
  33. return (
  34. <div>
  35. <ImagePicker
  36. files={files}
  37. onChange={this.onChange}
  38. onImageClick={(index, fs) => console.log(index, fs)}
  39. selectable={files.length < 5}
  40. onAddImageClick={this.onAddImageClick}
  41. />
  42. </div>
  43. );
  44. }
  45. }
  46. ReactDOM.render(<ImagePickerExample />, mountNode);

ImagePicker图片选择器 - 图1

API

适用平台:WEB、React-Native
属性说明类型默认值
files图片文件数组,元素为对象,包含属性 url(必选, 可能还有id, orientation, 以及业务需要的其它属性Array[]
onChangefiles 值发生变化触发的回调函数, operationType 操作类型有添加,移除,如果是移除操作,则第三个参数代表的是移除图片的索引(files: Object, operationType: string, index: number): void
onImageClick(web only)点击图片触发的回调(index: number, files: Object): void
onAddImageClick(web only)自定义选择图片的方法(): void
selectable(web only)是否显示添加按钮booleantrue

注: RN 版本回传 assets-library (性能考虑),需要使用 native 模块进行上传,可参考 https://github.com/facebook/react-native/issues/201