下午好,
第一次用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()方法。所以我相信它不会被移除和重新渲染。
我的问题是什么?