uniapp组件库uview-u
的按钮无法调用renderjs
的方法(方式二),而text
(方式一)可以,如下:
<!-- 方式一:可以正常执行 -->
<text @click="Trenderjs.getCurrentLocation">重新定位1111</text>
<!-- 方式二:报错 -->
<u-button type="primary" text="重新定位" @click='Trenderjs.getCurrentLocation'></u-button>
点击u-button
时,报错信息如下:
极有可能是
u-button
自带点击防抖效果导致的出于安全考虑,浏览器规定某些敏感操作只能在直接交互触发的事件回调中生效,如果防抖函数没有真
immediate
模式的话,其setTimeout
会使得整个流程变成“非直接交互”的了。当然也有可能是其他一些机制导致的,对 uniapp 不熟,不瞎猜了。
用
text
包裹一个u-button
,事件由text
触发,样式由u-button
提供,应该可以解决问题。