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

关于页面传值的问题,可以参考这篇哦~
地址: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是不冒泡的单击
*/
  
    客户电话:{{phone}}
  

//对应的函数取值
  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结构中)

你可能感兴趣的:(微信小程序——坑坑坑(会不断更新))