1***@qq.com
1***@qq.com
  • 发布:2020-11-03 16:53
  • 更新:2022-06-15 22:42
  • 阅读:9900

Error: Not Found:Page[2][-1,2,14] at view.umd.min.js:1

分类:uni-app

Error: Not Found:Page[2][-1,2,14] at view.umd.min.js:1
请问真机调试的时候,发出这个错误,是什么问题?怎么解决?

2020-11-03 16:53 负责人:无 分享
已邀请:
9***@qq.com

9***@qq.com - 漫画

这个问题是页面路由跳转的时候,数据正在加载 但是没有完成方法里面的代码造成的。 目测是这样 其实这个问题不会造成很大的出错,如果使用的是图片懒加在的话 导致图片不显示的问题

  • chihiro_yy

    您好,我现在就是遇到这种问题,图片不显示,想问一下这种可以怎么样解决呢

    2021-04-30 10:36

6***@qq.com

6***@qq.com

经过测试,发现了问题

举例重现下这个报错 使用uview的u-button的 ripple属性, 设为true, 这是个波纹动画的点击效果,接着让点击这个u-button直接navTo另一个页面, 波纹动画还要执行 但页面主体没了, 故报错;
如果设置成延迟再navTo 就不报错了

  • 7***@qq.com

    感谢,解决了,确实是这个问题

    2021-10-22 09:22

  • p***@163.com

    在u-button组件修改click方法和getWaveQuery:


    // 按钮点击

    click(e) {

    // 进行节流控制,每this.throttle毫秒内,只在开始处执行

    this.$u.throttle(() => {

    // 如果按钮时disabled和loading状态,不触发水波纹效果

    if (this.loading === true || this.disabled === true) return;

    // 是否开启水波纹效果

    if (this.ripple) {

    // 每次点击时,移除上一次的类,再次添加,才能触发动画效果

    this.waveActive = false;

    this.$nextTick(function() {

    this.getWaveQuery(e);

    });

    }

    else

    {

    this.$emit('click', e);

    }

    }, this.throttleTime);

    },

    // 查询按钮的节点信息

    getWaveQuery(e) {

    this.getElQuery().then(res => {

    // 查询返回的是一个数组节点

    let data = res[0];

    // 查询不到节点信息,不操作

    if (!data.width || !data.width) return;

    // 水波纹的最终形态是一个正方形(通过border-radius让其变为一个圆形),这里要保证正方形的边长等于按钮的最长边

    // 最终的方形(变换后的圆形)才能覆盖整个按钮

    data.targetWidth = data.height > data.width ? data.height : data.width;

    if (!data.targetWidth) return;

    this.fields = data;

    let touchesX = '',

    touchesY = '';

    // #ifdef MP-BAIDU

    touchesX = e.changedTouches[0].clientX;

    touchesY = e.changedTouches[0].clientY;

    // #endif

    // #ifdef MP-ALIPAY

    touchesX = e.detail.clientX;

    touchesY = e.detail.clientY;

    // #endif

    // #ifndef MP-BAIDU || MP-ALIPAY

    touchesX = e.touches[0].clientX;

    touchesY = e.touches[0].clientY;

    // #endif

    // 获取触摸点相对于按钮上边和左边的x和y坐标,原理是通过屏幕的触摸点(touchesY),减去按钮的上边界data.top

    // 但是由于transform-origin默认是center,所以这里再减去半径才是水波纹view应该的位置

    // 总的来说,就是把水波纹的矩形(变换后的圆形)的中心点,移动到我们的触摸点位置

    this.rippleTop = touchesY - data.top - data.targetWidth / 2;

    this.rippleLeft = touchesX - data.left - data.targetWidth / 2;

    this.$nextTick(() => {

    this.waveActive = true;

    this.$emit('click', e);

    });

    });

    },

    2022-12-03 21:34

dashuai

dashuai

把前一个页面隐藏后还执行的语句停掉,基本就能解决了

chenli

chenli

可以排查一下是界面上的哪部分代码导致报这个错的信息,也建议把代码贴出。

  • 1***@qq.com (作者)

    代码太多了。我用网页调试的时候没有问题,真机调试就出错

    2020-11-04 10:03

  • a***@qq.com

    回复 1***@qq.com: 我也遇到这个报错,一直没解决,页面路由的时候有些页面就会报这个错

    2020-11-11 16:07

Lv_Ainio1

Lv_Ainio1

我也出现这个问题了,报错是偶然性的,排错都不好排,每次出错都会概率性阻断我的代码。比较烦
用了一个比较骚的办法,
在生命周期 mounted 的函数里或是其他业务场景里,凡是会被阻断的代码或者会导致错乱的代码都写在 setTimeout 里 ,
用这个方法帮我解决了 NoticeBar 吸顶后错位问题和概率性阻断我代码的问题,依然还是会报那个错误,但是已经不会阻断我的代码了

rysnone

rysnone

同问同问

1***@qq.com

1***@qq.com

我的解决方案是找到有问题的组件,给组件设置一个v-if,数据加载出来后设置一个延时函数,【目测是数据没有加载完成组件就开始渲染,然后没有数据导致的】希望有更好的解决方案

要回复问题请先登录注册