componentDidUpdate vs componentWillReceiveProps

2023-11-05

componentDidUpdate有两个参数prevProps和prevState,不管是父组件props的修改还是state状态的更改都会触发该方法,而componentWillReceiveProps只有在父组件重新render props改变的时候才会触发。下面的代码是只有上一次的changeForm不包含1且本次props.changeForm包含1才会执行componnetDidUpdate

componentDidUpdate(prevProps: Readonly<FeatureProps>, prevState: Readonly<FeatureState>): void {
  const {changeType, ability, changeForm} = this.props; 
  const isDeligentCustomerShow = changeType === 1
      && !prevProps.changeForm.indexOf('1') > -1 && changeForm.indexOf('1') > -1;
      {
          this.getDeligentCustomerStatus();
      }
  return isDeligentCustomerShow;
}

这段代码是只有prevProps.agentId与本次props.agentId不一样时,才会调用componentDidUpdate方法。

componentDidMount(): void {
        this.clipboard = new Clipboard('#copyBtn');
        this.clipboard.on('success', e => {
            console.log('内容已经复制到剪切板啦');
            e.clearSelection();
        });
        this.clipboard.on('error', e => {
            console.error('无法复制', e.action);
            console.error('Trigger:', e.trigger);
        });
    }

componentDidUpdate(prevProps: Readonly<FeatureProps>, prevState: Readonly<FeatureState>): void {
   if (prevProps.agentId !== this.props.agentId) {
       this.clipboard = new Clipboard('#copyBtn');
       this.clipboard.on('success', e => {
           console.log('内容已经复制到剪切板啦');
           e.clearSelection();
       });
       this.clipboard.on('error', e => {
           console.error('无法复制', e.action);
           console.error('Trigger:', e.trigger);
       });
   }
}

componentWillReceiveProps在props发生改变时会执行,在初始化render时并不会执行。在做项目时遇到一个问题:renderSearch方法仅仅在第一次执行了,其后都没有执行。于是加上了componentWillReceiveProps方法。

componentDidMount(): void {
   this.context.methods.searchMember(this.handleChange, this.props.value);
}
componentWillReceiveProps(nextProps, nextState) {
    if (nextProps.value !== nextState.value) {
        this.context.methods.searchMember(this.handleChange, nextProps.value);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

componentDidUpdate vs componentWillReceiveProps 的相关文章

  • 2022国赛官方评审C题要点

    2022年C题评阅要点 本题通过对古代玻璃制品的化学成分数据分析 研究有无风化玻璃制品成分的变化规律 以及高钾 铅钡两种玻璃类型的化学成分统计规律 并探索亚分类的方法 进而可以依据未知分类的文物化学成分对文物进行准确的分类 本题数据的主要特
  • 怎么选酸奶

  • C# TCP/IP通讯协议的整理(二)附带——与欧姆龙PLC通讯

    进行了下优化 OmronParent中在new MyClient 时 设置端口号之前我是固定了 现在把它也开放出来 首先对MyClient类 进行一个小小的升级 添加发送和接收字节数组 using System using System C
  • [GXYCTF 2019]Ping Ping Ping

    禁了空格 并且不能用 IFS 因为 也禁了 ls发现 flag也被禁了 看index php的源码 cat IFS 9index php 可以base64编码绕过 echo ISF 9Y2F0IGZsYWcucGhw base64 IFS
  • AD16 如何锁定多根线 DDR3

    如何在altium designer中快速的锁定一整条信号线 如下图的DDR3走线 咱们随意选择一条 当你点击的时候 只能选中一部分 一 按下 Ctrl H 快捷键后 鼠标点击到要选中的线 你会发现 和这个线相关的线 过孔都被选中 如箭头所
  • 猴子爬山【Java】

    猴子爬山 Java 一天一只顽猴想去从山脚爬到山顶 途中经过一个有个N个台阶的阶梯 但是这猴子有一个习惯 每一次只能跳1步或跳3步 试问猴子通过这个阶梯有多少种不同的跳跃方式 输入描述 输入只有一个整数N 0
  • lora:low-rank adaption of large language models

    THUNLP 领读 ICLR 低秩微调大模型 LoRA OpenBMB论文速读 第3期 哔哩哔哩 bilibili 用脑图 十分钟 OpenBMB 论文速读 第3 期来了 本期领读人是清华大学自然语言处理实验室的本科生 带大家高效读完一篇关
  • 算法训练营第二十八天(8.11)

    目录 LeeCode 455 Assign Cookies LeeCode 376 Wiggle Subsequence LeeCode 53 Maximum Subarray LeeCode 455 Assign Cookies 题目地址
  • hbuilder webapp支付宝app支付

    前言 支付类的东西都是按照官方写的文档一步一步来就可以搞定 关键就是第一次弄 一脸懵 不成功就很烦躁 这次项目用的是hbuilder打包的app方式 框架用的是mui 其实app支付的重点就是在签名这块 官方有工具可以验签 一般签名不错的话
  • Java学习之抽象类&接口

    一 抽象类 1 抽象类的概述 一个没有方法体的方法应该定义为抽象方法 而类中如果有抽象方法 该类必须定义为抽象类 2 抽象类的特点 抽象类和抽象方法必须使用 abstract 关键字修饰 抽象类的定义 public abstract cla
  • 回归方法--一元回归,多元回归,逐步归回,Logistic 回归

    数学建模专栏 第三篇 MATLAB数据建模方法 上 常用方法 2017 07 21 卓金武 MATLAB 作 者 简 介 卓金武 MathWorks中国高级工程师 教育业务经理 在数据分析 数据挖掘 机器学习 数学建模 量化投资和优化等科学
  • Linux上如何查看某个进程的线程

    问题 我的程序在其内部创建并执行了多个线程 我怎样才能在该程序创建线程后监控其中单个线程 我想要看到带有它们名称的单个线程详细情况 如 CPU 内存使用率 线程是现代操作系统上进行并行执行的一个流行的编程方面的抽象概念 当一个程序内有多个线
  • JAVA中&&和两种符号

    可以用作逻辑与的运算符 表示逻辑与 and 当运算符两边的表达式的结果都为true时 整个运算结果才为true 否则 只要有一方为false 则结果为false 还具有短路的功能 即如果第一个表达式为false 则不再计算第二个表达式 例如
  • uni-app 微信小程序 onReachBottom 不生效

    问题描述 uni app 微信小程序 页面滑到底部 onReachBottom 没有生效 代码 pages json 配置 path style navigationBarTitleText 列表 onReachBottomDistance
  • 配置nginx服务器需要修改的配置文件为,01_Nginx安装,nginx下部署项目,nginx.conf配置文件修改,相关文件配置...

    1 下载Nginx 进入Nginx下载地址 http nginx org 2 下载pcre 这个是一个正则表达式的库 Nginx做rewriter的时候回用到这个库 进入pcre的官网 rewrite模式需要pcre http www pc
  • C语言的算法渐进分析

    C语言的基本结构 C语言由头文件组成 在C语言的源代码中有多个源文件 每一个源文件中包含了主函数 库函数以及自动以函数 源程序中可以有多个源文件 但是在运行的过程中只能有一个主函数 并且只能从主函数开始执行 C语言的格式为一行一句 在源程序
  • Android冷启动优化解析,flutter瀑布流列表

    TotalTime 242 WaitTime 288 Complete ThisTime 是指调用过程中最后一个Activity启动时间到这个Activity的 startActivityAndWait调用结束 TotalTime 是指调用
  • 云计算背后的秘密:NoSQL诞生的原因和优缺点

    聊聊为什么NoSQL会在关系型数据库已经非常普及的情况下异军突起 诞生的原因 随着互联网的不断发展 各种类型的应用层出不穷 所以导致在这个云计算的时代 对技术提出了更多的需求 主要体现在下面这四个方面 1 低延迟的读写速度 应用快速地反应能
  • TiDB介绍

    目录 TiDB 简介 一 四大核心应用场景 二 TiDB 整体架构 三 TiDB 数据库的存储 Key Value Pairs 键值对 本地存储 RocksDB Raft 协议 Region MVCC 分布式 ACID 事务 参考 TiDB
  • 002-数据结构之算法的时间复杂度和空间复杂度

    一 概述 对于同一个问题来说 可以有多种解决问题的算法 尽管算法不是唯一的 但是对于问题本身来说相对好的算法还是存在的 这里可能有人会问区分好坏的标准是什么 这个要从 时效 和 存储 两方面来看 好的算法应该具备时效高和存储低的特点 这里的

随机推荐

  • 美团二面:如果每天有百亿流量,你如何保证数据一致性?

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 前情提示 什么是数据一致性 一个数据计算链路的梳理 数据计算链路的bug 电商库存数据的不一致问题 大型系统的数据不一致排查有多困难 一 前情提示 这篇文章 咱
  • 顺序查找算法C语言实现

    顺序查找算法 实现思想 静态查找表用顺序存储结构表示时 顺序查找的查找过程为 从表中的最后一个数据元素开始 逐个同记录的关键字做比较 如果匹配成功 则查找成功 反之 如果直到表中第一个关键字查找完也没有成功匹配 则查找失败 应用场景 顺序查
  • SpringBoot-基础-10-自动配置类常用注解

    SpringBoot 基础 10 自动配置类常用注解 一 自动配置类 XXXAutoConfiguration XxxxAutoConfiguration类的含义是 自动配置类 目的是给容器中添加组件 从上示例中 我们可以了解到自动配置类常
  • HTML标题

    目录 HTML 标题 实例 标题很重要 HTML 水平线 实例 HTML 注释以及在PyCharm中快速添加注释 实例 HTML 提示 如何查看源代码 来自本页的实例 HTML 标签参考手册 一个完整的实例 在 HTML 文档中 标题很重要
  • 筛选法与试除法 判断素数

    素数的求解方法 第一种 试除法 第二种 筛选法 试除法 顾名思义 求一个数X是不是素数 就试用小于x大于1区间的自然数 只要有一个能整除 那么x就不是素数 否则就是 以输出100 200之间的素数为例 include
  • 深入理解SD卡基础原理以及内部结构的总结 (转)

    1 简介 SD卡 Secure Digital Memory Card 是一种为满足安全性 容量 性能和使用环境等各方面的需求而设计的一种新型存储器件 SD卡允许在两种模式下工作 即SD模式和SPI模式 本 系统采用SPI模式 本小节仅简要
  • buuctf - web - [极客大挑战 2019]Havefun

    入眼一看 是一只小猫 二话不说 直接F12 根据提示 修改 当前页面 URL 尝试传入参数 直接得flag
  • LWIP-TCP心跳机制

    LWIP TCP心跳机制 简介 在长连接下 可能很长一段时间都没有数据往来 理论上说 这个连接是一直保持连接的 但是实际情况中 如果中间节点出现什么故障是难以知道的 更致命的是 有的节点 防火墙 会自动把一定时间之内没有数据交互的连接给断掉
  • 什么是对网站的base64攻击?

    根据网络安全公司Imperva的一份报告 可以通过Base64编码进行的SQL注入攻击 是最常见的网络应用程序攻击类型之一 占所有攻击的20 这表明 Base64攻击是对网站和网络应用程序的一个重大威胁 Base64是一种常见的编码技术 用
  • 磁盘挂载问题:Fdisk最大只能创建2T分区的盘,超过2T使用parted

    1 下面使用parted工具进行分区的创建 parted dev sdb print 查看分区的使用情况 mklabel gpt 将MBR分区形式转换为GPT分区形式 mkpart promary ext4 划分一个采用ext4文件系统的主
  • SQL SUM() 函数

    SUM 函数返回数值列的总数 SQL SUM 语法 SELECT SUM column name FROM table name WHERE condition column name 是要计算总和的列名 table name 是包含要计算
  • 【学习笔记】感知机模型

    感知机 Perceptron 概述 1957年被提出 是一种有单层计算单元的神经网络模型 在结构上与M P模型相似 提出初衷是解决数据的分类问题 感知机是神经网络和支持向量机的基础 感知机原理 感知机本身是一种能进行二分类的线性模型 只要被
  • mysql为什么使用b+树

    MySQL 使用 B 树有以下几个原因 查询效率高 B 树的查询时间复杂度是 log n 级别的 相比链表和二叉树的 O n 性能要高得多 支持范围查询 B 树能够支持范围查询 这在 MySQL 中经常用于 WHERE 子句中的 BETWE
  • HC-05蓝牙模块使用记录

    前言 后面可能需要用到蓝牙远程控制 所以提前了解了一下 主要是用买来的蓝牙模块HC 05 主要包括一个蓝牙芯片CSR BC417 该公司是剑桥的一个公司 现已被高通收购 和一个FLASH芯片 调试一下两个HC 05之间基本的通讯以及与手机蓝
  • 关于TypeScript的引用类型

    基本数据类型 引用数据类型 赋值引用 public copyCite let obj name 1 let copyObj obj obj name 2 console log copyObj name 2 由于对象之间的赋值是复制了地址
  • 位运算的应用

    前天几天研究了下JDK的Collection接口 本来准备接着研究Map接口 可是一查看HashMap类源码傻眼咯 到处是位运算实现 所以我觉得还是有必要先补补位运算知识 不然代码看起来有点费力 今天系统研究了下 现记录如下 首先要明白一个
  • elementUI的el-table表格不生效问题

    我之前下载的elementUI依赖是用的镜像cnpm 删掉原来的依赖重新下npm的依赖npm i element ui S 重启前台服务就可以了
  • vue3和vite

    1 安装 vue cli 3 yarn add vue cli next 2 安装vite vue add vite 3 安装成功后package json中会添加 scripts vite node bin vite devDepende
  • 【hello C++】智能指针

    目录 一 内存泄漏 1 1 什么是内存泄漏 内存泄漏的危害 1 2 内存泄漏分类 1 3 如何检测内存泄漏 1 4 如何避免内存泄漏 二 智能指针的使用及原理 2 1 RAII 2 2 智能指针的原理 2 3 智能指针的发展历程 2 4 智
  • componentDidUpdate vs componentWillReceiveProps

    componentDidUpdate有两个参数prevProps和prevState 不管是父组件props的修改还是state状态的更改都会触发该方法 而componentWillReceiveProps只有在父组件重新render pr