NativeScript Vue ListView onTap不发送带有事件的项目

时间:2019-11-22 00:36:25

标签: javascript ios listview nativescript nativescript-vue

所以我有一个ListView,它通过onTap事件循环遍历数组对象。 onTap事件会触发应有的功能,但是当我尝试控制台登录docs中列出的event.index或event.item时,我的应用程序崩溃:

  

“ JS错误TypeError:未定义不是对象(正在评估'event.index')”

这是我关注的文档:https://nativescript-vue.org/en/docs/elements/components/list-view/

以下是相关标记:

<ListView for="item in feed" @itemTap="onFeedItemTap()" class="background-gray">
  <v-template>
    <StackLayout class="feed-item-panel">
      <StackLayout orientation="horizontal" style="padding: 5">
        <Label class="feed-item" :text="item.Date" row="0" col="0" />
      </StackLayout>
      <StackLayout orientation="horizontal" style="padding: 5">
        <Label class="feed-item bold" :text="'Product: ' + item.Product" fontAttributes="Bold" row="1" col="0" />
      </StackLayout>
      <StackLayout orientation="horizontal" style="padding: 5">                        
        <Label :class="item.mostRecent" :text="item.info" row="2" col="0" textWrap="true" />
      </StackLayout>
    </StackLayout>            
  </v-template>
</ListView>

相关的JS功能:

onFeedItemTap(event) {                
  console.log(event.index);  //GIVES ERROR!!              
  this.$showModal(BBCard);
}

请让我知道我是否缺少某些东西,或者至少指向正确的方向。但是从我看过的例子来看,这似乎是标准程序。

1 个答案:

答案 0 :(得分:0)

与{N}无关,纯粹是Vue。在文档中,它们不使用括号(方法事件处理程序)。默认情况下,您在此处获取事件对象。

<ListView for="item in listOfItems" @itemTap="onItemTap">

如果使用括号(方法内联处理程序),则必须使用$event才能访问事件对象

<ListView for="item in listOfItems" @itemTap="onItemTap($event)">