初學小程序,不足的地方或者錯誤的地方請指正,謝謝。
背景:在學習小程序開發時,想獲取列表渲染中的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 } })
