美文网首页
微信小程序——坑坑坑(会不断更新)

微信小程序——坑坑坑(会不断更新)

作者: Easy_伊 | 来源:发表于2018-04-08 15:02 被阅读24次

关于页面传值的问题,可以参考这篇哦~
地址:https://www.jianshu.com/p/0135769db89c

一、页面之间通过url传值问题

问题描述:
专门写了个web-view组件用的页面,只需要从其他页面传递webUrl进web-view页面,即可显示web网页。问题是,页面之间url传参的参数中,字符串(webUrl)中的"?"和"="后面的字符会被忽略。嗯,心疼自己一下下。

解决方法:

// 传入web-view页面
wx.navigateTo({
    url: '../../pages/web-view/web-view?webUrl=' + escape(webUrl),
 })

//从web-view页面中取出与赋值
onLoad: function (options) {
    this.setData({ url: unescape(options.webUrl) });
}

二、页面函数传参

问题描述:又是一把辛酸泪。列表数据,点击列表中的某一项,需要将该项数据传入函数中,想当然的用上了"函数名(实参)"的方式。结果就是狗带
解决方法:

/*
wxml中,用data-*的自定义属性方法,将数据定义到元素中。名字随便取,data-开头就好。
!!要注意,wxml中定义的名称是data-user-phone,取值是用userPhone。
catchtap是不冒泡的单击
*/
  <view class="itemRow" data-user-phone="{{phone}}" catchtap="callPhone">
    <text>客户电话:<text class="phone">{{phone}}</text></text>
  </view>

//对应的函数取值
  callPhone: function (event) {
    wx.makePhoneCall({
      phoneNumber: event.currentTarget.dataset.userPhone
    })
  },

三、POST请求方式

小程序的请求方式,默认是GET。使用POST方式需要加入“method:"POST”,POST一定是大写。POST方式的“header”与GET不同,见下。另外主要要在data中的key,要加上引号。之前写成data:{u:xxx},请求出错。

wx.request({
        method:"POST",
        url: config.url.serviceUrl + 'service/LoginServlet',
        data: {
          "u": _this.data.username,
          "p": password == _this.data.password ? _this.data.password:MD5.md5(_this.data.password)
        },
        header: {
          'content-type': 'application/x-www-form-urlencoded' // 默认值
        },
        success: function (ret) {},
        fail: function () { },
        complete: function (ret) { }
      })

四、服务端图片更换后,小程序端图片不变

写代码的时候,碰到一些图片是需要放在服务端上。由于图片不会增删,只会修改,不需要写接口去获取图片,因此是采用前端固定服务端图片地址的方式访问图片。但是由于服务端图片地址不变,小程序并不会更新这些图片,只会采用最初打开小程序时,缓存的图片。。。就是这么坑爹。
解决方式:在服务端图片地址后,加个随机数,保证每次图片地址都不一样(其实指向的地址是一样的,只是骗骗小程序)
?’ + Math.random();
这种方式,图片地址需要放在js中,直接在image标签中写Math.random()方法是无效的,会得到一个undefined(因为我习惯react的JSX语法了。。。有些简单的数据处理会放到虚拟dom结构中)

相关文章

网友评论

      本文标题:微信小程序——坑坑坑(会不断更新)

      本文链接:https://www.haomeiwen.com/subject/qzophftx.html