Uniapp|爬坑之真机点击无效 uniapp真机测试请求问题
liuian 2024-12-22 19:34 52 浏览
本人项目在微信小程序里面一直正常,但不管是跑模拟器还是真机,通过运行到手机或模拟器之后。
在使用uni-list的时候没办法正常跳转,比如下面这样的代码:
<uni-list class="plan" v-for="(plan, index) in yesterdayAibhPlansList.plans_list" :key="plan.id">
<uni-list-item :title="plan.pth_sentence.title" :note="plan.pth_lesson.title"
:rightText="'创建计划:'+ plan.plan_make_time + '前'" @click="toPracticePage(plan, 'yesterday')" link
clickable>
</uni-list-item>
</uni-list>这里点击后我是希望能够进入Practice页面,但奇怪的是,刚进入真机APP的时候一切正常,但一旦有数据删除、添加的时候,表现就不正常了,有时候首尾可以点击进入下一页面,而中间的不行,有时候只剩下头一个可以点击。而那些无法进入下一页的也不是完全没反应,只是闪了一下,就没有然后了。
一开始以为是自己的key可能写成index(不建议使用index),导致vue不知道更新哪一个。但自己用的全是数据库中的id号,这绝对是唯一的,不可能重复。如上图中的plan.id。
尝试了改为click改为tap,现象一致。而且看网上的文章,tap还容易出现二次点击的毛病。
又觉得可能是数据更新有毛病,专门添加了forceUpdate,而且只在APP平台中有效:
// #ifdef APP-VUE|| APP || APP-NVUE || APP-PLUS
console.log("force update");
self.$forceUpdate()
// #endif但一切照旧,郁闷了两天后我发现了click的一个选项:native。这个选项来自于vue, 看官方文档讲得很抽象,没搞懂,研究后发现网上的说法比较多,在多次试验后发现,下面的解释比较靠谱,即:
给vue组件绑定事件时候,必须加上native ,不然不会生效(监听根元素的原生事件,使用 .native 修饰符),等同于在自定义组件中,子组件内部处理click事件然后向外发送click事件:$emit("click".fn),也就是说有了native才会让子组件真正的监控到click事件,而且极可能是个内部的bug,只不过使用native之后可以解决问题,因为在uniapp里面是真机测试的时候才需要加上native, 而小程序里面并不需要!
所以我的理解是:uni-list-item这个子组件,想要正常地触发click,需要添加上native,这样点击此组件的时候,click事件才会正确的传递进去!进而再调用父组件的click方法,看下图我的试验。
点击有反应的解决办法
<uni-list class="plan" v-for="(plan, index) in todayAibhPlansList" :key="plan.id">
<uni-list-item :title="plan.pth_sentence.title" :note="plan.pth_lesson.title"
:rightText="'创建计划:'+ plan.plan_make_time + '前 '" @click.native="toPracticePage(plan, 'today')" link
clickable>
</uni-list-item>
</uni-list>即用@click.native, 注意不能是@tap.native,这个我已经测试过了,无效。
添加native之后,微信小程序也是正常的!
另外,还有一种情况点击后无反应。
点击后页面没有跳转
点击无反应也可能是你的页面没有跳转
你是否在Navigate中使用的是tabbar页面?同样微信小程序可以跳,但真机不行,这个在官方文档里面有说明: https://uniapp.dcloud.io/api/router?id=navigateto
这时候,你应该使用的是uni.switchTab,点击的后真机就可以跳转了。(类似这种事,官方其实给出个警告,结果啥提示也没有)
toUserPage() {
uni.switchTab({
url: '/pages/user/user'
})
},还是不行的话,检测下自己有没有正确的使用组件,比如:
uni-list-item点击后不跳转
uni-list-item点击无效,看有没有添加link或者clickable,有这两个就能够触发点击事件了。
<uni-list class="practice" v-for="(practice, index) in latestPracticesList" :key="practice.id">
<uni-list-item :thumb="index | toPNG" :title="practice.pth_sentence.title"
:note="'课程:'+practice.pth_lesson.title" :rightText="practice.created_at + '前'"
@tap="toPracticePage(practice)" link clickable>
</uni-list-item>
</uni-list>可以看看uni-list-item中关于onClick的源代码,也就是link, clickable任一项都会触发父组件传递的click事件。
onClick() {
if (this.to !== '') {
this.openPage();
return;
}
if (this.clickable || this.link) {
this.$emit('click', {
data: {}
});
}
},同样的,这个现象小程序里面可能没有,但真机里面就是不会跳转,你说让人晕不晕。
总结
虽然此问题在uni-list里面出现,但当你使用自定义组件的时候,也可能会遇到点击后没反应的情况,此时试下@click.native!
uniapp坑确实挺多的,但感觉主要还是各种平台造成的,浏览器,PC,真机,还有各种小程序环境其实都不一致,手机平台也分苹果、安卓两大类。所以我还是在坚持用uniapp,毕竟排除了小坑,其它表现真的是挺一致的。
我是@爱玩的安哥,关注我获取更多有用知识
相关推荐
- 一键装机软件大全(一键装机下载)
-
1一键装机工具是一种自动化安装计算机操作系统以及常用软件的工具。2使用一键装机工具,需要先准备好需要安装的操作系统镜像和需要安装的软件列表,然后将它们放在一键装机工具所指定的位置。接下来,打开一键...
- home键是什么意思苹果手机(home键是苹果手机哪个键)
-
就是手机屏幕正下方的那个圆形的按钮,就是苹果手机的home键,home键的作用比较大,可以用来设置指纹解锁,单机home键可以返回主屏幕界面,双击home键可以弹出后台应用程序可以进行清楚,还可以通过...
- tplink说明书图片(tp-link路由器说明书步骤图)
-
第一步连接路由器WIFI在手机获取IP地址里找到路由器网关地址,第二步在浏览器地址栏输入路由器网关地址,之后会跳转到路由器管理员登录界面,输入账号密码就可以进入路由后台管理路由,如果提示路由器密码错误...
- 如何不安装flash玩4399(现在4399不提供flash如何玩游戏)
-
没有flash是玩不了的,需要开启flash才可以。1、首先打开浏览器,进入4399的游戏页面。2、进入游戏页面后,点击【已被屏蔽】文字。3、然后右上角会出现窗口,点击【管理】按钮。4、进入管理页面后...
- chrome download apk(chromedownloadapk in english)
-
手机下载安装的第三方应用出现问题,无法正常使用,建议按照以下方法操作:1.关闭重新启动该应用。2.建议将此软件卸载重新安装尝试。3.更换其他版本尝试。4.更新下手机系统版本后安装尝试5.备份手机数据(...
-
- qq空间官网手机登录网页版(qq空间官网登陆入口)
-
z.qq.com可以通过以下方式登录手机QQ空间:1、使用手机登录手机腾讯网3g.qq.com,点击“空间”,根据提示QQ号码和QQ密码就可以登录;2、通过手机直接输入手机QQ空间网址z.qq.com,根据提示操作即可登录;3、下载手机Q...
-
2025-12-22 13:55 liuian
- windows11我的电脑在哪里打开
-
1/6通过“开始”进入“设置”-“时间和语言”。2/6在“时间和语言”界面选择“区域”3/6这里我们将区域更改位“新加披”,退出。4/6打开微软自带的市场,搜索“你的手机”获取并下载。5/6安装完成后...
- win10怎么取消开机自启动(win10如何关闭开机自动启动)
-
要关闭Windows10的开机自动启动程序,你可以按下Win+R键,输入"msconfig"并按回车键打开系统配置工具。在"启动"选项卡中,你可以看到所有开机自动...
- 手机cpu排名2025(手机cpu排名榜)
-
一、2022手机CPU性能综合排名前八名手机CPU:1、型号:苹果A16---综合分数:暂无2、型号:骁龙8gen1---综合分数:42333、联发科天玑9000---综合分数:38724、...
- 论坛系统(论坛系统数据流图)
-
BBS是电子布告栏系统的简称,一种网站系统,也是目前流行网络论坛的前身。它允许用户使用终端程序通过调制解调器拨接或者因特网来进行连接,BBS站台提供布告栏、分类讨论区、新闻阅读、软件下载与上传、游戏、...
- hp1020plus打印机无法打印(惠普1020plus打印机突然不能打印了)
-
删除惠普打印机驱动和软件:1.如果你的打印机已通过USB连接到电脑,断开USB连接;2.打开控制面板—程序和功能(卸载或更改应用程序);3.在软件列表中找到惠普打印机,将其卸载;4.重启电脑...
- wifi密码破解器电脑版(wifi密码破解工具电脑版)
-
肯定不是万能钥匙这种“破解”wifi的东西。不是一两次见到把万能钥匙当做破解wifi用的人了,但实际上那玩意就是个分享wifi的软件。你连上一个wifi,密码就会被分享到云端(可以不分享),别...
- 手机临时文件夹在哪个位置(手机临时文件夹在哪个位置找)
-
1.手机文件临时文件是指在手机使用过程中产生的临时文件。2.手机应用程序在运行时需要产生一些临时文件,如缓存文件、日志文件、临时下载文件等,这些文件可以提高应用程序的运行效率和用户体验。但是,这些...
- 安卓10系统下载(安卓10 下载)
-
方法及步骤: 其实使用安卓车机下载歌曲的方法十分的简单,具体操作步骤和安卓手机一模一样。 首先我们需要在车机的应用商店上,下载一个音乐播放器,例如网易云音乐或者QQ音乐等。 下载完成后点击进入...
- 华硕人工客服24小时吗(华硕售后人工客服)
-
华硕服务中心广东省惠州市惠东县城平深路(创富斜对面)惠东同心电脑城1L11(1.3km)笔记本电脑,平板电脑华硕服务中心广东省惠州市惠东县平山镇同心电脑城1F26(1.3km)笔记本电脑,平...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
