八岐大兔吼啦吼啦 2023-02-15 15:28 采纳率: 100%
浏览 34
已结题

微信开发者工具,.js文件使用!!转boolean不生效

首先我需要在接口链接后拼接图片id,才能获取图片文件流,当我拿到这个文件流的时候,做了个拼接然后再resolve出去。所以我做了个文件流的接口封装,关键代码如下。

url = 'data:image/png;base64,' + wx.arrayBufferToBase64(res.data)  
resolve(url)

但是这个图片接口有时是请求不到的,有时请求到了但是什么都不返回,我就加了层判断,方便不同页面根据空url显示默认图片。
在请求到但是什么都没返回时,我做了判断。

let url = ""
If ( !!res.data ) { 
   url = 'data:image/png;base64,' + wx.arrayBufferToBase64(res.data)  
 }  
resolve(url)

安卓oppo系统在没有数据时,返回的是 “” ;
但是ios在没有数据时,却返回 'data:image/png;base64,' ,导致我在页面中显示不了默认图片。

目前的解决办法是:在页面判断 wx:if={{ url.lenght === 0 || url.lenght === 27 }} 时显示默认图片 ……

为啥会有这个问题呢?有没有什么更好的解决办法啊?我没找到在微信小程序的.js中能用!!转换boolean不生效的解决办法。还有其他很多位置其实也不生效,但我可以用.lenght去解决,接口封装这种没有任何返回的不知道该怎么处理。

工具版本:2.19.4
工具已开启fs6转es5
后端图片接口配置了nginx

  • 写回答

1条回答 默认 最新

  • ZionHH 2023-02-15 16:08
    关注

    没有数据时res.data返回的不是空字符串或者null什么的吗,是的话可以 if (res.data)
    或者可以使用Object.keys(res.data).length

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月24日
  • 已采纳回答 2月16日
  • 修改了问题 2月15日
  • 创建了问题 2月15日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分