代码之家  ›  专栏  ›  技术社区  ›  Uğur Kaya

未正确触发componentDidUpdate

  •  0
  • Uğur Kaya  · 技术社区  · 7 年前

    下午好,

    第一次用React我被卡住了那么多,不明白为什么componentdidpupdate没有给我正确的结果。我要做的是根据通过道具传入的标签数量对子组件做一些更改。当我尝试记录组件中发生的所有更改时,您可以清楚地看到标记的数量已经更改,但它没有记录更新组件的周期。

    下面是我的componentDidUpdate方法:

      componentDidUpdate(previousProps) {
        if (this.props.message.id == 11553) {
          console.log(`Current tag array length: ${this.props.message.tags.length}, previous: ${previousProps.message.tags.length}`);
        }
      }
    

    下面是日志结果:

    MessageTags.js:190 Current tag array length: 4, previous: 4
    MessageTags.js:190 Current tag array length: 4, previous: 4
    MessageTags.js:190 Current tag array length: 4, previous: 4
    MessageTags.js:190 Current tag array length: 4, previous: 4
    MessageTags.js:190 Current tag array length: 4, previous: 4
    socket.js:41 SOCKET DATA RECEIVED -> createTag:  {…}
    MessageTags.js:190 Current tag array length: 5, previous: 5
    MessageTags.js:190 Current tag array length: 5, previous: 5
    

    在套接字响应之后,一个新的标记被添加到redux状态。我已经检查了组件是否以某种方式重新呈现,因此它不更新而是直接呈现,并且它没有再次触发componentDidMount()方法。所以我相信它不会被移除和重新渲染。

    我的问题是什么?

    0 回复  |  直到 7 年前