uni图片上传

前言: 之前的方式也可以用,但有一个bug就是选中后不能第二次选择,猜想应该是this丢失的问题

  1. 添加imgclick点击事件
<image class="imgclass" @tap="imgclick"></image>
  1. 添加uni.chooslmage函数

这个方法在uni-app官网: uni.chooseImage(OBJECT) | uni-app官网
写这个方法的时候我发现官网很多方法没有说怎么用, 怎么办呢? 然后发现其实都可以放大点击事件中试试

uni.chooseImage({
	count: 6, //默认9
	sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
	sourceType: ['album'], //从相册选择
	success: function (res) {
		console.log(JSON.stringify(res.tempFilePaths));
	}
});
  1. 添加imgsrc变量

4.1 把image中的 src=“” 改成变量的形式 :src=“imgsrc”

<image class="imgclass" :src="imgsrc" @tap="imgclick"></image>

4.2 在data()中放一个 imgsrc:‘…/…/static/img/jiahao.png’ , 这张图片就是默认显示的图片,也可以不放但如果不放的话会显示什么也没有,但可以点击。

data() {
			return {
				imgsrc:'../../static/img/jiahao.png'
			}
		},
  1. 防止this的丢失

5.1 把选中的图片的路基给data中的imgsrc

//把选中的图片的路基给data中的imgsrc
_this.imgsrc = res.tempFilePaths[0];

5.2 按照逻辑应该把this放在最前面

var _this = this;

全部代码

<template>
	<View>
		<view class="imgview2">
			<image class="imgclass"
				:src="imgsrc" @tap="imgclick"></image>
		</view>
	</View>
</template>

<script>
	export default {
		data() {
			return {
				imgsrc:'../../static/img/jiahao.png'
			}
		},
		
		methods: {
			imgclick(){
				//为什么要到前面定义一个this 因为this可能会丢失
				var _this = this;
				uni.chooseImage({
					count: 1, //默认9
					//original 原图    
					//compressed 压缩
					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
					sourceType: ['album'], //从相册选择
					//回调函数
					//JSON.stringify(res.tempFilePaths) 成功时产生的路径
					success: function (res) {
						console.log(JSON.stringify(res.tempFilePaths));
						//把选中的图片的路基给data中的imgsrc
						_this.imgsrc = res.tempFilePaths[0];
						
						//为什么要到前面定义一个this 因为this可能会丢失
					}
				});
			}
		}
	}
</script>

<style>

</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值