reactjs - 为父母的孩子重新渲染逻辑,每秒更新多次
问题描述
所以我有一个组件,其状态由子元素每秒更新多次。
为了防止过度渲染,我在其他孩子上使用 shouldComponentUpdate 以确保他们不会重新渲染太多。
被更新的状态元素是树下一个孩子需要的。
我只想重新渲染那个子元素,而不是中间子元素,再次避免过度渲染。
怎么可能做到这一点?
解决方案
我只想重新渲染那个子元素,而不是中间子元素,再次避免过度渲染。怎么可能做到这一点?
您不能通过将状态作为道具传递的传统方法。如果不先触发子组件 B 的重新渲染,则父组件中的状态更改无法触发孙组件 C 的重新渲染。
对于更新子组件的组件,它需要经历其生命周期,然后才能将新道具传递给它。
据我所知,解决这个问题的唯一方法是使用状态管理库,例如 Redux 或 MobX,或者使用 React Context API 并将状态变量移动到那里,然后在您的孙子组件中“使用”它。
话虽这么说,除非您的树是多个级别的深度并且您没有看到任何性能问题,否则我会考虑shouldComponentUpdate()
像您已经在做的那样继续使用。
推荐阅读
- python - 使用正则表达式从python中的html代码中提取文本
- javascript - 不使用表单Angular 5将输入从脏返回到原始
- php - 在 PHP 中将 cURL 上传到 Hubspot /“找不到文件”
- iot - IFTTT Webhook 限制
- python - 是否有一种有效的方法来检查列是否具有混合 dtypes?
- firebase - 为什么我的设备离线时,我的 Flutter 应用程序会在 Firestore 上保存两次?
- c# - 加密文件未正确解密
- javascript - Dropzone maxFilesize 在 C# MVC 项目网站中没有影响
- c# - 如何在asp.net web api中使用城堡温莎在身份验证过滤器属性中实现依赖注入?
- amazon-web-services - AWS:提供对 S3 对象的有限且安全的访问