问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

react 子组件获取父组件传来的 props 问题

发布网友 发布时间:2022-12-16 22:39

我来回答

1个回答

热心网友 时间:2023-09-17 09:18

平时我获取父组件 的props, 都是在子组件函数里  this.props.xxxx

父组件这样写

子组件这样写

这种情况,子组件在 componentDidMount 里面可以拿到 props,因为 父组件的值不是异步的。

然而,当父组的的值是异步,不如AJAX请求数据,子组件的componentDidMount 就获取不到 父组件的 props

父组件

子组件componentDidMount 里是拿不到 props

怎么解决这个问题呢, 这时候,componentWillReceiveProps 就显神威了,

看了生命周期,上面问题,用componentWillReceiveProps 

完美解决问题

下面介绍一个生命周期的定义:

1)componentWillMount(){}

在客户端和服务器上,在初始渲染发生之前立即调用一次 如果在这个方法中调用setState,

render()将看到更新的状态,并且只会执行一次,尽管状态改变。

2)componentDidMount(){}

 调用一次,只在客户端(不在服务器上),在初始渲染发生后立即 子组件的componentDidMount()方法在父组件的componentDidMount()方法之前被调用 setTimeout  setInterval  AJAX 在此之行,强烈建议

3)componentWillReceiveProps(nextProps){}

 在组件接收新props时调用。初始渲染不调用此方法。老的props可以用this.props  新值就用nextProps查看 在此函数中调用this.setState()不会触发附加的渲染。

4)shouldComponentUpdate(nextProps, nextState){}

 当正在接收新的道具或状态时,在渲染之前调用。 此方法必须返回falseortrue否则报错true则渲染,false则不渲染!在此声明周期中可以考虑是否需要进行渲染!避免不必要的性能浪费// 如果shouldComponentUpdate返回false,那么render()将被完全跳过,直到下一个状态改变。此外,不会调用componentWillUpdate和componentDidUpdate。 默认返回true// 如果性能是一个瓶颈,特别是有几十个或几百个组件,请使用shouldComponentUpdate来加快您的应用程序。returntrueorfalse

5) componentWillUpdate(nextProps, nextState){}

当正在接收新的props或state时立即调用。初始渲染不调用此方法// 您不能在此方法中使用this.setState()。如果您需要更新state以响应prop更改,请改用componentWillReceiveProps。

6)componentDidUpdate(nextProps, nextState){}

在组件的更新刷新到DOM后立即调用。初始渲染不调用此方法。当组件已更新时,使用此操作作为DOM操作的机会

7)componentWillUnmount(){}

 在组件从DOM卸载之前立即调用。在此方法中执行任何必要的清理,例如使计时器无效或清除在componentDidMount中创建的任何DOM元素。clearInterval or destroy
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
上市就跌的股票为什么 为什么新股都会暴跌 为什么新股上市都跌 身上有烧伤的伤疤怎么去除 石榴皮发霉还能吃吗?新鲜石榴的保存方法有哪些? 5岁上瑞思和英孚哪个好 瑞思和英孚哪个好?上过课后来说说各自的优缺点 瑞思和英孚哪个好?上过课后来分享各自的优缺点 怎么当历史老师 中学历史老师需求状况 react 父子组件执行顺序 react state 和 props 发生改变会触发的钩子函数 React生命周期, setState、props改变触发的钩子函数 地质资料汇交管理中存在的主要问题 芜湖市大地农副产品怎么招商 男孩和女孩起名字带yj 完美国际YJ没有大力就不能玩了吗?? 2345yj什么东西 韩国的几个大的娱乐公司大概都在首尔的什么地方? 胶鞋可以用微波炉烘干吗?! 橡皮筋能不能放在微波炉里 测橡胶水微波炉怎么调整 詹姆斯13代球鞋鞋带的正确系法!能配图最好,谢谢! 渤海财产保险股份有限公司蚌埠中心支公司怎么样? 中国人民财产保险股份有限公司沙县支公司怎么样? 中国人民财产保险股份有限公司云霄支公司怎么样? 中国人民财产保险股份有限公司罗源支公司怎么样? 中国人民财产保险股份有限公司武平支公司怎么样? 中国人民财产保险股份有限公司福建自贸试验区福州片区支公司怎么样? 人保在福建的分公司地址在哪里 王者荣耀铠和露娜什么关系 铠为什么是露娜的哥哥 制造业上市公司应收账款问题 浪客剑心之追忆篇第三季阿巴怎么流血了 浪客剑心追忆篇共几集? 浪客剑心追忆篇最后那个三块石头后面的十字架是怎么回事? 2016一年级猜一猜,写一写。树和羊。三杯水。太阳和月亮。 请问一年级下册第三题读一读,猜一猜,填一填的怎么写 交通综合管理服务平台的违章提示 我从前风闻有你(一) 车主惠叫代驾取消了两次怎么不可以叫了? 孙悟空的出身及来历是什么? 硬度有需求也强就是坚持不了多久怎么办 泰拉瑞亚怎么快速获得金币? 手机版泰拉瑞亚怎么刷金币 王安悲剧:80年代月赚30亿美元,扼杀微软,失败后隐藏了什么 《泰拉瑞亚》游戏中,金币如何得?还是需要造?用什么造? 泰拉瑞亚怎么弄金币 请教计算机大佬! 学计算机班里一个大佬都没有正常吗 富士山下注音