项目是基于dingyou-dingtalk-mobile脚手架的一个微应用,这个脚手架使用的UI是antd-mobile,它提供了一个图片上传的组件,但是未提供图片预览的组件,在网上找了不少如何在react项目中实现图片预览查看的功能,大多数都是基于react-native的,比如https://segmentfault.com/a/1190000010090233里面所说的react-wx-images-viewer组件,以及https://www.jianshu.com/p/6374a1ec3f01里介绍的react-native-photo-browser组件,但是这个脚手架未引用到react-native,试着在该脚手架上安装react-native,进而使用这些组件,但是都报错了,无法实现。

看了下钉钉官方推荐的saltui,里面提供了图片预览的的功能,可参看https://salt-ui.github.io/components/image-viewer,立即按照其说明进行了安装。

打开nowaGui对于项目下的终端,输入以下命令行即可安装。

npm install saltui --save

接下来是在页面上的引用。加入以下两句即可。(当时在引用的时候少加了dd.css,导致一直没有使用成功,以为在这个脚手架中只能使用一种ui呢。)

import { ImageViewer,Boxs } from 'saltui';
import 'saltui/build/dd.css';

接下来即是获取图片数据、填充进组件里即可了

show =(index)=>{

        ImageViewer.show({
photos: this.listForImageLook(this.state.imagesList),
current: index,
}); }
const listForImage = (imagesList) => {
let images = [];
for(let i = 0; i < imagesList.length; i++) { let m = {url : AUTH_URL + 'appImages/' + imagesList[i].imageName,id : imagesList[i].id}; images.push(
<Box>
<img src={AUTH_URL + 'appImages/' + imagesList[i].imageName} className="demo3-t-list-img"
onClick={this.show.bind(this,i)}/>
</Box> );
} return images;
}
<div style={{display: this.state.imagesList.length == 0 ? 'none' : ''}}>
<WhiteSpace size="lg" /> <Card>
<Card.Header
title={<span><font color="gray"> * </font>图片</span>}
/>
<Card.Body style={{width : '90%'}}>
<HBox vAlign="center">
<HBox flex={1}>
{listForImage(this.state.imagesList)}
</HBox>
</HBox>
</Card.Body> </Card>
</div>

使用saltui实现图片预览查看的更多相关文章

  1. jQuery PC端图片预览,鼠标移上去查看大图

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. dropzonejs中文翻译手册 DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库.

    http://wxb.github.io/dropzonejs.com.zh-CN/dropzonezh-CN/ 由于项目需要,完成一个web的图片拖拽上传,也就顺便学习和了解了一下前端的比较新的技术 ...

  3. 本地与在线图片转Base64及图片预览

    查看效果:http://sandbox.runjs.cn/show/tgvbo9nq 本地图片转Base64(从而可以预览图片): function localImgLoad() { var src ...

  4. 图片预览组件PhotoView

    图片预览组件PhotoView PhotoView是一款图片预览组件,广泛应用于大图的查看.该组件支持图片手势缩放.旋转等功能.它可以很好的和ViewPager.Picasso等组件结合,实现各种复杂 ...

  5. js实现移动端图片预览:手势缩放, 手势拖动,双击放大...

    .katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...

  6. DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库.

    DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库. 它是轻量级的,不依赖任何其他类库(如JQuery)并且高度可定制. 试试看! 将文件拖至此处或点击上传.(这仅仅是 dropzo ...

  7. 手动实现图片预览-放大缩小全屏支持IE9以上

    #{extends '/Index/index.html' /} #{set title:'意见反馈' /} <script src="/public/mgr/javascripts/ ...

  8. 原生js实现ajax的文件异步提交功能、图片预览功能.实例

    采用html5使得选择图片改变时,预览框中图片随之改变.input文件选择框美化.原生js完成文件异步提交 效果图: 代码如下,可直接复制并保存为html文件打开查看效果 <html> & ...

  9. 移动端 H5 拍照 从手机选择图片,移动端预览,图片压缩,图片预览,再上传服务器

    前言:最近公司的项目在做全网营销,要做非微信浏览器的wap 站 的改版,其中涉及到的一点技术就是采用H5 选择手机相册中的图片,或者拍照,再将获取的图片进行压缩之后上传. 这个功能模块主要有这5点比较 ...

随机推荐

  1. GC 垃圾收集

    算法: 没有使用引用计数算法.使用的是GC Roots 可达性算法. 复制算法:新生代,老年代. 标记-整理算法:一般会对对象标记几次才会清理掉.然后从新整理物理内存空间. 分代收集算法:更加对象存活 ...

  2. HDU 5069 Harry And Biological Teacher(AC自动机+线段树)

    题意 给定 \(n\) 个字符串,\(m\) 个询问,每次询问 \(a\) 字符串的后缀和 \(b\) 字符串的前缀最多能匹配多长. \(1\leq n,m \leq 10^5\) 思路 多串匹配,考 ...

  3. Docker Engine SDKs and API 的开发2

    Examples using the Docker Engine SDKs and Docker API After you install Docker, you can install the G ...

  4. 利用C#实现AOP常见的几种方法详解

    利用C#实现AOP常见的几种方法详解 AOP面向切面编程(Aspect Oriented Programming) 是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术. 下面这篇文章主要 ...

  5. CSS-形变 动画 表格

    一.形变 /*1.形变参考点: 三轴交界点*/ transform-origin: x轴坐标 y轴坐标; ​ /*2.旋转 rotate deg*/ transform: rotate(720deg) ...

  6. CodeChef - FNCS Chef and Churu(分块)

    https://vjudge.net/problem/CodeChef-FNCS 题意: 思路: 用分块的方法,对每个函数进行分块,计算出该分块里每个数的个数,这样的话也就能很方便的计算出这个分块里所 ...

  7. windows 7 系统下,用户每次登录都是以临时配置文件的形式存在于users文件夹下

    windows 7 系统下,用户每次登录都是以临时配置文件的形式存在于users文件夹下 当用户登录系统后,在users文件夹下创建的是一个临时文件夹,如果当前用户log off,那么当前用户的所有设 ...

  8. _equipment

    该表控制切换地图自动更换装备,离开该地图时,装备自动切换为原来.,HEAD - TABARD小于0时取下装备,等于0时不更换,大于0时更换为对应装备. comment 备注 class 职业索引 1- ...

  9. 蚂蚁金服首席数据科学家漆远:AI技术开放,与业界融合共创

    小蚂蚁说: 11月8日,在第五届世界互联网大会-<人工智能:融合发展新机遇>论坛上,蚂蚁金服副总裁.首席数据科学家漆远认为AI具有控制风险.降本增效和提升用户体验三大作用. 11月8日,第 ...

  10. MongoDB 对象操作

    对象插入 >db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: 'xxx', url: ' ...