在使用 react-navigation 跳转界面时,如果快速点击某个按钮跳转界面,会出现 界面连续跳转 2 次的情况。

这里提供一种简单的解决方法:

新建 common.js 文件,在其中编写一个公共的导航跳转的函数,控制让界面在 一定时间范围(这里是1秒)内只跳转一次,比如在1秒内点击多次时,跳转事件只执行一次。

common.js代码

var lastNavTime = "";
export const jumpPage=(navigation,page,params)=>{
   //上次点击与本次点击时间差在 1000 毫秒之内,就返回
  if(lastNavTime+1000 >= Date.now()){
    return;
  }
  lastNavTime = Date.now();
  if(navigation){
    navigation.push(page,params);
  }
}

使用

1.首先在头部导入 jumpPage 函数

import {jumpPage} from '../common';

2.在需要跳转的地方使用 jumpPage 公共函数做跳转

_pressBtn(){
    jumpPage(this.props.navigation,'home',{userId:'abc'});
 }

 

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐