IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 记录本地测试没问题,测试环境有问题的疑点 -> 正文阅读

[JavaScript知识库]记录本地测试没问题,测试环境有问题的疑点

  • modal内关闭当前弹窗,并跳转到新的页面

1、尝试过使用promise.then

const p = function () {
            console.log('=======2');
            return new Promise((resolve, reject) => {
              console.log('=======3');
              handleHistoryModalVisible(false);
              resolve();
            });
          };
          console.log('=======4');
          p().then(() => {
            console.log('=======5');
            history.push({
              pathname: '...',
              query: {
                id: text,
              },
            });
          });

结果测试环境还是页面跳转成功,但是弹窗没有关闭

2、使用settimeout包裹页面跳转事件,并设置延时300毫秒

结果测试环境页面跳转成功,弹窗关闭。但是,跳转后的页面无法点击

3、正确的解决办法!!!!!!!!做好笔记

在modal的afterClose内加上跳转事件

import { message, DatePicker, Select, Modal } from 'antd';
import ProTable from '@ant-design/pro-table';
import { useEffect, useRef, useState, } from 'react';
import { history } from 'umi';
import { isEmpty } from '../../../../utils/common';

const historyModal = (props) => {

  const actionRef = useRef();
  const [jumpLink, handleJumpLink] = useState(undefined);

  useEffect(async () => {
    if (props?.values?.orgCode && props.modalVisible) {
      handleJumpLink(undefined);
      if (actionRef.current) {
        actionRef.current.reload();
      }
    }
  }, [props?.values?.orgCode]);

  const columns = [
    {
      title: '编号',
      dataIndex: 'ode',
      width: 200,
      render: (text, record) => (
        <a
          key="detail"
          onClick={() => {
            handleJumpLink(text)
            props.changeDetailModalVisible(text);
          }}
        >
          {text}
        </a>
      ),
    },
  ];
  return (
    <Modal centered
      forceRender
      maskClosable={false}
      width={1200}
      bodyStyle={{
        padding: 0,
        maxHeight: '600px',
        overflowY: 'auto',
      }}
      destroyOnClose
      title='记录'
      visible={props.modalVisible}
      onCancel={() => {
        handleJumpLink(undefined);
        props.onCancel();
      }}
      footer={null}
      afterClose={() => {
        if (!isEmpty(jumpLink)) {
          history.push({
            pathname: '/detail',
            query: {
              id: jumpLink,
            },
          });
        }
      }}
    >
      <ProTable size="small"
        ...
        columns={columns}
      />
    </Modal>
  );
};

export default historyModal;

?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-28 11:44:26  更:2022-04-28 11:45:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:20:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码