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

React状态管理-对state进行保留和重置

相同位置的相同组件会使得 state 被保留下来

在这里插入图片描述
在这里插入图片描述
当你勾选或清空复选框的时候,计数器 state 并没有被重置。不管 isFancytrue 还是 false,根组件 App 返回的 div 的第一个子组件都是 <Counter />
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
你可能以为当你勾选复选框的时候 state 会被重置,但它并没有!这是因为 两个 标签被渲染在了相同的位置。 React 不知道你的函数里是如何进行条件判断的,它只会“看到”你返回的树。在这两种情况下,App 组件都会返回一个包裹着 作为第一个子组件的 div。这就是 React 认为它们是 同一个 的原因。

你可以认为它们有相同的“地址”:根组件的第一个子组件的第一个子组件。不管你的逻辑是怎么组织的,这就是 React 在前后两次渲染之间将它们进行匹配的方式。

相同位置的不同组件会使 state 重置

在这里插入图片描述
在这里插入图片描述

在相同位置重置 state

  • 方法一:将组件渲染在不同的位置
    在这里插入图片描述

  • 方法二:使用 key 来重置 state
    在这里插入图片描述
    https://react.docschina.org/learn/preserving-and-resetting-state#option-1-rendering-a-component-in-different-positions

相关文章:

  • 简单介绍Qt的属性子系统
  • 【RabbitMQ】七种工作模式介绍
  • blazor与硬件通信实现案例
  • 【基础编程】EF中的事务与SQL数据库事务的区别
  • 爬虫Incapsula reese84加密案例:Etihad航空(纯算法)
  • day 24
  • 闭包原理与常见陷阱
  • WSL 安装 Debian 12 后,Linux 如何安装 nginx ?
  • HarmonyOS 【诗韵悠然】AI古诗词赏析APP开发实战从零到一系列(二、项目准备与后台服务搭建)
  • linux操作系统命令
  • 《量子语言模型研究综述》核心解读
  • Axure应用交互设计:表格跟随菜单移动效果(超长表单)
  • 【JavaScript】JavaScript实现大数相乘
  • RDD的自定义分区器
  • 运行Spark程序-在shell中运行
  • 【Ubuntu】neovim Lazyvim安装与卸载
  • 网络状态可以通过hutool.HttpStatus获取
  • 讯联云库项目开发日志(一)
  • 3.2 一点一世界
  • 嵌入式学习笔记 - HAL_ADC_ConfigChannel函数解析
  • “80后”德州市接待事务中心副主任刘巍“拟进一步使用”
  • 中国人民抗日战争暨世界反法西斯战争胜利80周年纪念活动标识发布
  • 警方通报:某博主遭勒索后自杀系自导自演,已立案调查
  • 中国恒大:清盘人向香港高等法院申请撤回股份转让
  • 上海能源科技发展有限公司原董事长李海瑜一审获刑13年
  • 一生要出片的年轻人,买爆相机