前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【react hooks】属性作为useState 初始值,属性改变useState 不改变问题?

【react hooks】属性作为useState 初始值,属性改变useState 不改变问题?

作者头像
星宇大前端
发布于 2022-03-09 03:33:35
发布于 2022-03-09 03:33:35
2.2K00
代码可运行
举报
文章被收录于专栏:大宇笔记大宇笔记
运行总次数:0
代码可运行

项目场景:

现在有一个Modal子组件,需要父组件控制显示隐藏,同时子组件也可以控制隐藏。

技术描述:

  • React Hooks
  • TypeScript

子组件部分代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
interface DataHelperProps {
  visible: boolean;
  title: string;
}

const IndexPage: React.FC<DataHelperProps> = ({ visible, title }) => {
  const { TabPane } = Tabs;
  const { Search } = Input;
  const [modelVisible, setModelVisible] = useState(visible);
  debugger
  console.log(modelVisible);
  return (
    <Modal
      visible={modelVisible}
      title={title}
      width={900}
    >
    </Modal>
  );
};
export default IndexPage;

问题描述:

父组件点击按钮重新传入 visible 为 true, 子组件并没有显示。

原因分析:

我打印下了 modelVisible

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  const [modelVisible, setModelVisible] = useState(visible);
  debugger
  console.log(modelVisible);

发现visible 此时为ture ,界面也重新render了,但是modelVisible 为false。

也就是说useState并没有随着属性的改变重新赋值

解决方案:

监听下属性,当属性改变的时候,重新复制state 。 缺点这样会多刷新一次

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  useEffect(()=>{
    setModelVisible(visible)
  },[visible])
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
react hooks 生命周期渲染时机简述
整个结构是父组件调用红框子组件,子组件有一个title 是父组件传过来的属性,另一个subtitle 是一个state 按钮是刷新这个state 。
星宇大前端
2022/10/31
1.4K0
120. 精读《React Hooks 最佳实践》
React 16.8 于 2019.2 正式发布,这是一个能提升代码质量和开发效率的特性,笔者就抛砖引玉先列出一些实践点,希望得到大家进一步讨论。
黄子毅
2022/03/14
1.3K0
react-hooks 的实际应用
2019年2月,随着react16.8版本的发布,react带来了稳定版的hooks,我从2019年的10月份开始使用hook,现在使用了大半年了,记录下遇到的坑
windseek
2020/05/31
7390
“混合双打”之如何在 Class Components 中使用 React Hooks
React 在 v16.8.0 版本中推出了 Hook,作为纯函数组件的增强,给函数组件带来了状态、上下文等等;之前一篇关于 React Hooks 的文章介绍了如何使用一些官方钩子和如何自建钩子,如果想要了解这些内容的同学可以访问《看完这篇,你也能把 React Hooks 玩出花》。
政采云前端团队
2020/12/02
4.4K0
“混合双打”之如何在 Class Components 中使用 React Hooks
超实用的 React Hooks 常用场景总结
React 在 v16.8 的版本中推出了 React Hooks 新特性。在我看来,使用 React Hooks 相比于从前的类组件有以下几点好处:
前端达人
2021/05/11
4.8K0
React-hooks+TypeScript最佳实战
如果新的 state 需要通过使用先前的 state 计算得出,那么可以将回调函数当做参数传递给 setState。该回调函数将接收先前的 state,并返回一个更新后的值。
xiaofeng123aa
2022/10/17
6.2K0
超性感的React Hooks(三):useState
这几天和许多同学聊了使用React Hooks的感受。总体感觉是,学会使用并不算难,但能用好却并不简单。
用户6901603
2020/07/23
2.5K0
腾讯前端经典react面试题汇总
为了解决跨浏览器兼容性问题, React会将浏览器原生事件( Browser Native Event)封装为合成事件( Synthetic Event)并传入设置的事件处理程序中。
beifeng1996
2022/10/28
2.2K0
使用React Hooks + 自定义Hook封装一步一步打造一个完善的小型应用。
Reack Hooks自从16.8发布以来,社区已经有相当多的讨论和应用了,不知道各位在公司里有没有用上这个酷炫的特性~
ssh_晨曦时梦见兮
2020/04/10
5.3K0
浅谈 React 组件设计
前端组件化一直是老生常谈的话题,在前面介绍 React 的时候我们已经提到过 React 的一些优势,今天则是带大家了解一下组件设计原则。
玖柒的小窝
2021/10/22
7030
react-hooks如何使用?
react-hooks是react16.8以后,react新增的钩子API,目的是增加代码的可复用性,逻辑性,弥补无状态组件没有生命周期,没有数据管理状态state的缺陷。笔者认为,react-hooks思想和初衷,也是把组件,颗粒化,单元化,形成独立的渲染环境,减少渲染次数,优化性能
用户6835371
2021/06/01
3.7K0
如何用 Hooks 来实现 React Class Component 写法?
温馨提示:因微信中外链都无法点击,请通过文末的 “阅读原文” 到技术博客中完整查阅版;
JSCON简时空
2020/03/02
2.1K0
React Hooks 的原理,有的简单有的不简单
React 是实现了组件的前端框架,它支持 class 和 function 两种形式的组件。
神说要有光zxg
2022/04/12
7520
React  Hooks 的原理,有的简单有的不简单
【React深入】从Mixin到HOC再到Hook(原创)
前端发展速度非常之快,页面和组件变得越来越复杂,如何更好的实现 状态逻辑复用一直都是应用程序中重要的一部分,这直接关系着应用程序的质量以及维护的难易程度。
ConardLi
2019/05/23
1.8K0
【react】203-十个案例学会 React Hooks
原文地址:https://github.com/happylindz/blog/issues/19
pingan8787
2019/07/23
3.2K0
React Hooks笔记:useState、useEffect和useLayoutEffect
useState 让函数组件也可以有 state 状态,并进行状态数据的读写操作。
德顺
2021/08/19
2.9K0
React Hooks 中的属性详解
React Hooks 是 React 16.8 版本中新增的特性,允许我们在不编写 class 的情况下使用 state 和其他的 React 特性。Hooks 是一种可以让你在函数组件中“钩入” React 特性的函数。以下是一些常用的 React Hooks,并附有详细的用法和代码示例。
世间万物皆对象
2024/03/20
2490
「React 进阶」 React 全部 Hooks 使用大全 (包含 React v18 版本 )
React hooks是react16.8 以后,react新增的钩子API,目的是增加代码的可复用性,逻辑性,弥补无状态组件没有生命周期,没有数据管理状态state的缺陷。本章节笔者将介绍目前 React 提供的所有 hooks ,介绍其功能类型和基本使用方法。
用户6835371
2022/09/21
3.3K0
「React 进阶」 React 全部 Hooks 使用大全 (包含 React v18 版本 )
【React】633- 使用 Hooks 优化 React 组件
由于我所在的业务是资讯内容类业务,因而在业务中会经常碰到如下场景:有一个内容列表,列表中需要按照一定的规则插入广告。除了获取广告数据,广告展现和点击后需要有打点上报逻辑。正常来说我们会这么写:
pingan8787
2020/06/24
1.3K0
【React】633- 使用 Hooks 优化 React 组件
React Hooks 万字总结
每个 hook 都会有一个 next 指针,hook 对象之间以单向链表的形式相互串联, 同时也能发现 useState 底层依然是 useReducer 再看看更新阶段发生了什么
ConardLi
2021/04/23
9680
相关推荐
react hooks 生命周期渲染时机简述
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验