当前位置: 首页 > 知识库问答 >
问题:

React shouldComponentUpdate()=false不停止重新呈现

孙清野
2023-03-14

基本上,我有一个非常简单的react组件。它所做的是,环绕“反应-对讲机”,只有当状态发生变化时才会呈现它。为了简化这个问题,我硬连接了shouldcompoenentupdate()方法以始终返回false。

    import React from 'react';
    import Intercom from 'react-intercom';
    
    class IntercomWrapper extends React.Component {
        shouldComponentUpdate(nextProps, nextState) {
            // console.log(!!nextProps.user && nextProps.user.userId !== this.props.user.userId);
            // return !!nextProps.user && nextProps.user.userId !== this.props.user.userId;
            return false;
        }
    
        render() {
            console.log('rendering');
            return <Intercom {...this.props} />;
        }
    };
    
    export default IntercomWrapper;

发生的是它总是重新发送,这不应该发生。

有人知道为什么会这样吗?

共有1个答案

南宫凯康
2023-03-14

我终于明白了:问题是包装组件正在接收状态更改,并且无条件地重新呈现所有子组件(这是正常行为。这是一个重新排列组件的问题(将这个对讲机包装器从我的 组件中取出)。谢谢大家的帮助!干杯!

 类似资料:
  • goodmornig,我对在Android Studio上创建数据库有一个问题。代码没有问题,但应用程序说“不幸停止”。我该如何解决这个问题呢? 还有另一个activity

  • 问题内容: 我有一个包含三个部分的搜索页面。浏览主题组件列出了可供选择的主题。浏览文章组件基于主题ID列出所有文章,如果没有主题ID,则加载所有文章。home组件包含browsertopics和browserarticles组件,并根据所单击的主题更改其状态。 我需要的是,我希望BrowseTopics组件在父状态更改时停止重新呈现。我尝试使用shouldComponentUpdate()(返回f

  • 我从这里修改了以下组件定义,如下所示。但是,与示例不同的是,每次在组件上移动鼠标时,组件都会重新呈现。 重新渲染非常引人注目: 有人知道为什么会这样吗?

  • 更新:我试过那些设置,但它们也不起作用。