Reactjs:使用 shouldComponentUpdate() 停止在特定状态更改时重新渲染

2024-03-31

我的组件 onload 中有多个 setState。我的页面在单击下拉值时重新呈现,因为单击时我通过以下方式存储这些值setState.

为了停止点击时重新渲染,我使用下面的代码。

shouldComponentUpdate() {
    return false
}

现在,由于上述功能,我的值不会存储在页面加载时的状态中。有什么我需要额外做的吗?


您声明组件中没有显示更改,因为它根本不会重新渲染,因为您已经返回false来自shouldComponentUpdate method.

如果您想限制特定状态更改的渲染,则只需检查该状态并返回 false,否则返回 true,例如

shouldComponentUpdate(nextProps, nextState) {
     if(this.state.dropdownVal != nextState.dropdownval) {
          return false
     }
     return true
}

然而,重新渲染并不是一件坏事,因为 React 渲染过程非常高效,而且您会希望更频繁地在 DOM 中显示更新后的状态。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Reactjs:使用 shouldComponentUpdate() 停止在特定状态更改时重新渲染 的相关文章

随机推荐

  • 如何使用 rustc-env 标志指定环境变量?

    我想设置rustc env VAR VALUE这样我就可以使用它访问它env var VAR 在我的代码中 但是 我不清楚在哪里指定它 可以设置环境变量吗VAR在 Makefile 中 TL DR build rs fn main prin
  • SwiftUI ScrollView:如何修改 .content.offset 又名分页?

    Problem 如何修改scrollView的滚动目标 我正在寻找 经典 scrollView 委托方法的替代品 override func scrollViewWillEndDragging scrollView UIScrollView
  • 为什么 jQuery 在用动画滚动整个页面时必须接收 2 个对象:body 和 html?

    在我在网上找到的有关使用 jQuery 实现页面滚动动画的所有教程中 我发现大多数教程都使用以下代码来执行此操作 html body animate 我试图找出为什么需要为 2 个对象设置动画 html 和 body 但运气不佳 我可能认为
  • Prisma DATABASE_URL 错误(Cloud Run + Cloud SQL)

    I use Prisma https www prisma io 使用 Cloud Run 和 Cloud SQL 提供后DATABASE URL to the prisma schema它在运行时向我抛出一个错误 Can t reach
  • 反转字符串中空格分隔单词的顺序

    反转字符串中空格分隔单词的顺序的最佳方法是什么 Hello everybody in stackoverflow becomes stackoverflow in everybody Hello 尝试这个 s Hello everybody
  • 释放分配的内存

    这是好的做法吗 或者我应该替换之间的代码块 and 有一个功能 它可以重复使用 我承认 但我这样做的唯一动机是取消分配colsum因为它是huge并且不需要这样我就可以释放分配的内存 vector
  • 显示 HTML 页面的外部加载资源的文件大小

    文章中 我们如何保持 GitHub 的快速运行 https github com blog 1252 how we keep github fast 他们描述了一个工具栏 GitHub 工作人员可以使用该工具栏查看每个页面加载的各种性能指标
  • div悬停背景颜色改变?

    我怎样才能使它的行为就像一行 div 是锚点一样 所以当我将鼠标悬停在它上面时 它会返回红色 CSS e width 90px border right 1px solid 222 text align center float left
  • Doxygen:在不更改 CSS 的情况下显示数字 Enum 值?

    我需要一种方法让 doxygen 在 doxygen 输出中显示枚举成员的实际值 例如我有 MyEnum typedef enum My Enum MY ENUM 0
  • FQL 图形 API:共同的朋友

    我知道您无法找到朋友的朋友 但是您可以使用某些查询以计算有效的方式找到共同的朋友吗 我什至可以遍历我的朋友来查看他们中哪些是有目标的朋友吗 有什么好的办法可以交到朋友吗 你可以这样做 facebook new Facebook array
  • 我可以像对待数组一样对待结构吗?

    我有一个用于保存 4D 矢量的结构 struct float x float y float z float w vector4f 我正在使用一个库 该库具有一些对向量进行操作但以浮点指针作为参数的函数 调用类似的东西是否合法doSomet
  • 如何使用 Groovy 添加 XML 属性?

    我需要将 属性添加到 Groovy 中 XML 片段的根元素 我想用XmlSlurper 怎么做 添加元素很容易 在 Groovy 控制台中运行此命令以验证其是否有效 import groovy xml StreamingMarkupBui
  • 有没有办法通过 MVC 应用程序中的特定控制器操作来提供 Blazor 应用程序?

    我想在现有的 ASP NET Core 3 0 MVC 项目中设置一个控制器操作来为 Blazor 应用程序提供服务 我过去见过与其他 SPA 框架类似的东西 操作的视图仅包含包含捆绑包的脚本标记 通常还有一些其他设置 例如将 SPA 构建
  • Prometheus Java 摘要指标是线程安全的吗?

    普罗米修斯是Java吗Summary对象线程安全 如果我在类中将其声明为静态 则该类的所有实例都将使用它 Prometheus 是否为该度量对象实现了线程安全 Prometheus 客户端库负责处理方向检测的线程安全等细节 例如Summar
  • is_numeric() 与 is_float() 与 is_int()

    我的理解是 if is numeric input true 那么要么 is float input true OR is int input true OR input 0 OR input是一个数字字符串 意味着如果没有用引号括起来 它
  • FFMPEG 在视频末尾添加图像

    我需要使用 FFMPEG 在 mp4 视频文件末尾添加一秒钟的图像 我的视频尺寸是 WxH 图像尺寸是 MxM 因此视频和图像尺寸不同 我尝试了不同的选项 以便在视频末尾添加图像 ffmpeg i concat videoIn mp4 im
  • iOS 将照片保存在应用程序特定的相册中

    我正在创建一个 iOS 5 应用程序 我想将照片保存到设备中 我想将照片保存到我的应用程序特定的相册中 因此我需要创建相册 然后将照片保存到相册中 我知道如何创建相册 ALAssetsLibrary library ALAssetsLibr
  • R:加速“group by”操作

    我有一个模拟 中间有一个巨大的聚合和组合步骤 我使用 plyr 的 ddply 函数对这个过程进行了原型设计 它可以很好地满足我的大部分需求 但我需要更快的聚合步骤 因为我必须运行 10K 次模拟 我已经在并行扩展模拟 但如果这一步骤更快
  • 设计:新错误(可加密)

    我已经一周没有碰过我的代码了 但是当我捆绑并尝试运行我的网络服务器时 我现在收到以下错误 这让我死在了水里 按照错误输出中的建议包含可设计加密的 gem 并不能解决问题 并且仍然会导致相同的错误 任何帮助是极大的赞赏 DEVISE Devi
  • Reactjs:使用 shouldComponentUpdate() 停止在特定状态更改时重新渲染

    我的组件 onload 中有多个 setState 我的页面在单击下拉值时重新呈现 因为单击时我通过以下方式存储这些值setState 为了停止点击时重新渲染 我使用下面的代码 shouldComponentUpdate return fa