切记不要用修改this.data的方式修改引用类型的值
初始化数据里面
data: {
xxx: {a:0},
},
如果直接先用this.data.xxx.a=1
的方式改了一次数据,那么不仅只能修改初始化的数据,更严重的是,初始化数据已经被破坏了。
因为这之后,再用this.setData({xxx:{a:2}})
,可以看到页面上xxx.a 虽然等于2了,但实际只是页面渲染的数据发生了变化而已,初始化数据并没有变,且无论你再操作几次setData,xxx.a都依然等于1。
具体表现为,当你跳出当前页面再跳回来,会发现xxx.a一直是1
这就是官方文档提到的数据不一致的问题
wx.request 改成 my.request 之后注意:
header =》headers
statusCode =》 status
支付宝这边success() 仅包含请求正常(状态码status== 200)的结果。如果要处理请求出错(状态码status != 200) 的结果,需改在fail(){}里面做处理。
与上文网络请求接口继续相反,支付宝这边success() 不仅包含请求正常的结果,也包含了用户取消的结果,不像微信,将用户取消放在了fail()里面。
与微信差异很大,而且支付宝这边明显混乱一点,button莫名其妙的单独用onError属性来处理“拒绝”,如果按照微信的习惯去理解,则很容易跟 my.getPhoneNumber的fail()用法搞混。关键支付宝这边目前还不支持模拟器调试此功能。
组件的属性设置
properties=》props
方法内使用:
this.data =》this.props
that.triggerEvent 废弃,改用this.props直接调用
https://opendocs.alipay.com/mini/framework/component_object
不支持 click、tap、touchstart,可以套一个view
focus属性的值如果多次通过setData设置为true时,会发现第二次setData无效,需要同时给input加入onBlur事件或者通过其他方法将focus属性的值设为false(重置/刷新input),才能再次让focus=true生效。