当前位置: 首页 > article >正文

componentDidMount只执行一次的解决方法

一、前言

最近写react antd前端项目,需要页面加载时调用下查询列表的接口。

于是在componentDidMount方法里这样写了:

  componentDidMount() {
    const {
      dispatch,
      MyJS: { queryPara },
    } = this.props;

    //这个调用接口查询列表
    dispatch({ type: 'MyJS/fetch', queryPara });
  }

之后,当首次打开这个页面时,确实可以查询到数据列表;

但是关闭这个页面后再次打开,就发现没有数据了,componentDidMount没有执行。

二、解决方法

1.由于关闭页面时,没有销毁这个页面,因此再次打开这个页面,页面不会重新加载,就不会调用componentDidMount方法。

2.因此,可以在引入页面的标签中,加上destroyOnClose,样例如下:

        <Drawer
          width={1200}
          title="选择列表"
          placement="right"
          closable={false}
          onClose={this.onClose1}
          visible={visible1}
          destroyOnClose
        >
          <Mypage onClose={this.onClose1} />
        </Drawer>

说明:
(1)Drawer标签是import { Drawer } from 'antd';
(2)closable={false}是样式,false时右上角没有关闭按钮,true时有。
(3)visible控制这个子页面打开或者关闭
(4)加上destroyOnClose,就可以当页面关闭后,销毁页面,下次再打开页面就能触发componentDidMount方法了。(如果需要缓存页面、不需要销毁,那就去掉这个)
(5)Mypage标签是自己写的一个页面,import Mypage from './mypage/index';
(6)onColse是页面被关闭时会调用的方法


http://www.kler.cn/a/105964.html

相关文章:

  • 在Qt(以及C++)中, 和 * 是两个至关重要的符号--【雨露均沾】
  • 4.STM32之通信接口《精讲》之USART通信---实验串口发送程序
  • Java项目实战II基于Java+Spring Boot+MySQL的共享汽车管理系统(源码+数据库+文档)
  • OceanBase 分区表详解
  • 三维测量与建模笔记 - 点特征提取 - 4.3 Harris特征点
  • springboot如何获取控制层get和Post入参
  • 【软件测试】超细HttpRunner接口自动化框架使用案例,一篇策底打通...
  • 更换网络ip地址怎么设置
  • Pytorch使用torchvision.datasets.ImageFolder读取数据集,数据集的内容排列状况
  • 如何使用SpringBoot处理全局异常
  • MySQL不常用查询
  • Linux下的文件操作和文件管理
  • 微信小程序获取数据的方法——iBeacon蓝牙
  • Adversarial attacks and defenses on AI in medical imaging informatics: A survey
  • Easysearch 容量规划建议
  • OkHttp网络框架深入理解-SSL握手与加密
  • 雪糕冰淇淋经营配送小程序商城效果如何
  • 【Python机器学习】零基础掌握VotingClassifier集成学习
  • 在线设计数据库表用Itbuilder,极简易用真香!!!
  • 基于Jsp+Servlet+MySql的汉服网站的设计与实现-源码+毕业论文
  • 算法工程师-机器学习-数据科学家面试准备4-ML系统设计
  • git 版本管理
  • InterfaceWave 架构图
  • DSP 开发教程(0): 汇总
  • Python数据挖掘:入门、进阶与实用案例分析——基于非侵入式负荷检测与分解的电力数据挖掘
  • chrony参数及常用命令介绍