我有一个表格组件,包含项目列表。 通过更改列表中的项目,我发现整个表格都是重新渲染的。 我试图把shouldComponentUpdate,并通过返回false我看到行组件不会重新渲染。 我是否必须重新提交父母以便重新展开子组件?React是否必须重新提交父母才能让孩子重生?
0
A
回答
0
https://facebook.github.io/react/docs/react-component.html#shouldcomponentupdate
返回false并不阻止子组件的重新渲染时,他们的状态变化。
如果孩子中的数据作为父母的属性传递,那么是的,您必须重新提交父母以重新展示孩子。其原因是,如果你的孩子依赖道具,并且父母不渲染,那么这些道具永远不会改变,因为只有在父母根据自己的状态呈现并给予新的道具时它才会接收到变化的道具或道具。我怀疑这是你的问题。重新渲染父项通常不是React中的性能问题。
如果孩子们有自己的状态正在改变,那么不会重新渲染父母就没问题。如果你使用的是一个状态容器,另一种选择是让孩子直接进入状态,然后在状态容器更新相关状态时更新他们的道具,但这超出了这个问题的范围。
一般来说,最好不要使用shouldComponentUpdate
,除非性能要求它,然后只有非常仔细的考虑。
相关问题
- 1. 您是否必须重新启动apache才能使.htaccess中的重新编写规则生效?
- 2. 我是否必须重新开始?
- 3. 您必须首先调用孩子父母的removeView()
- 4. 您必须对孩子的父母先调用removeView()
- 5. Android - 指定的孩子已经有父母。你必须先调用孩子父母的removeView()
- 6. 问题:指定的孩子已经有父母。您必须先调用孩子父母的removeView()
- 7. 指定的孩子已经有父母。你必须先调用孩子父母的removeView()1
- 8. 重新提交父组件
- 9. 我是否必须生成rebel.xml以重新加载JRebel更改?
- 10. React JSX:父组件的重新渲染是否会重新加载子组件?
- 11. 2函数必须是真实的才能提交表单。 (Javascript)
- 12. 父母重新装修后,是否有办法重新设定子分支?
- 13. 如何让特定父母的孩子?
- 14. 让父母控制画过孩子
- 15. MDI父母孩子
- 16. 我是否必须等待某个网站才能生效才能设置SSL?
- 17. 如何才能将孩子只在父母内部移动?
- 18. 添加新孩子时将新孩子与其父母链接
- 19. 父母重叠的孩子的盒子阴影
- 20. 循环父母记录其次是孩子,父母和孩子等
- 21. 不能让'孩子'和'父母'一起正确通信
- 22. 必须单击两次才能在IE8中提交表单
- 23. 重新部署WCF服务时是否必须重新启动IIS?
- 24. 定义对话框 - 你必须对孩子的父母第一次
- 25. android:指定的孩子已经有父母。你必须调用removeView()
- 26. 功能调用的子程序是否必须完成功能才能继续?
- 27. 实体框架是否支持引用0..1个孩子的父母指向1父母的孩子?
- 28. 为什么我必须重复输入才能让我继续前进?
- 29. 选择孩子的父母
- 30. has_many孩子和has_many父母
UI中的重新渲染与正在调用的渲染方法不同。父母是哪一个?它可以是“渲染”,但如果没有差异,则实际上不会进行DOM更改。 –
子组件受到父组件传递的数据的影响。好奇。为什么你必须防止你的父母组件重新渲染? –