微信小程序中image组件src路径拼接字符串的问题
最近在做微信小程序毕设,涉及到远程图片显示,一开始我是这样写的:
index.js文件中
onLoad: function () {
this.setData({
imgurl:app.globalData.imgurl
})
}
index.wxml文件中
<!-- imgurl是上面setData获得的,是我的服务器的地址,后面 item.imageUrl是具体某一张图片的地址,我想把它们拼接到一块
用过src="{{imgurl%20}}" + "{{item.imageUrl}}" 各种都尝试过,但是都不行 -->
<image src="{{imgurl%20+%20item.imageUrl}}" mode="aspectFill" />
但是控制台老是报错说找不到本地图片:
VM12083:1 Failed to load local image resource /pages/index/index/images/2020/03/26%2021:24:17/158522905776945.png
the server responded with a status of 500 (HTTP/1.1 500 Internal Server Error)
先说解决方法:
1.可以在imgurl初始化的时候就赋值
index.js
data: {
imgurl: getApp().globalData.imgurl
}
index.wxml
<image src="{{imgurl%20+%20item.imageUrl}}" mode="aspectFill" />
2.可以在标签中做判断
<image src="{{imgurl%20?%20imgurl%20+%20%20item.imageUrl:%20'%20'}}" mode="aspectFit"></image>
我选择的是第一种,然后完美解决了,没有报错了。
接下来简要说一下为什么会报错:
看一下报错信息,说本地不存在images/2020/03/26%2021:24:17/158522905776945.png .png这个文件。也就是说页面在执行onLoad之前就已经渲染了,这个时候imgurl值为空字符串,image的src拿到的图片链接就是/images/2020/03/26%2021:24:17/158522905776945.png ,image标签就以为这是本地图片导致的。
版权声明:本文为weixin_44410358原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。