初学小程序,不足的地方或者错误的地方请指正,谢谢。
背景:在学习小程序开发时,想获取列表渲染中的index值,因为在学习vue时可以给事件处理函数传入参数,想用同样的方法在小程序上应用,发现在catchtap=‘onPostTap(1)‘,传入参数在调用onPostTap时会报Component "pages/posts/posts" does not have a method "onPostTap(1)" to handle event "tap".的错误。
查阅文档发现
- 在相应的Page定义中写上相应的事件处理函数,参数是event。
-
Page({ onPostTap: function(event) { console.log(event) } })
- 打印出来的event
最终使用自定义属性的方法获取到相应的index,具体代码如下:
wxml部分
<block wx:for="{{postKey}}" wx:key="{{index}}">
<view catchtap=‘onPostTap‘ data-index="{{index}}"> <template is="postItem" data="{{...item}}"/> </view>
</block>
js部分
Page({ data: { }, onPostTap: function(event) { var index = event.currentTarget.dataset.index console.log(index) // 打印出相应的index //测试其他回调函数的参数问题 var a = this.fn(6) console.log(a) // 6 }, fn: function(n) { return n } })