uview列表cell在真机上点击事件失效

511 阅读1分钟

问题描述:使用u-cell-group进行列表点击跳转时,在浏览器测试正常,用真机测试时,点击事件触发不到

解决办法:点击事件@click添加.native

<u-cell-group v-if="cellList.length>0" :border="false">
	<u-cell-item v-for="item in cellList" :key="item.Id" :title="'['+item.Id+']'+item.Name" @click.native="cellClick(item)">
	</u-cell-item>
</u-cell-group>	

给vue组件绑定事件时候,必须加上native ,不然不会生效(监听根元素的原生事件,使用 .native 修饰符),等同于在自定义组件中,子组件内部处理click事件然后向外发送click事件:$emit(“click”.fn),也就是说有了native才会让子组件真正的监控到click事件,而且极可能是个内部的bug,只不过使用native之后可以解决问题,因为在uniapp里面是真机测试的时候才需要加上native, 而小程序里面并不需要!

所以我的理解是:uni-list-item这个子组件,想要正常的触发click,需要添加上native,这样点击此组件的时候,click事件才会正确的传递进去!进而再调用父组件的click方法。