下午好,
我第一次被React困住了,无法理解为什么componentDidUpdate没有给我正确的结果。我想做的是根据通过props传入的标签数,对子组件进行一些更改。当我尝试记录组件中发生的所有更改时,您可以清楚地看到标记的数量已更改,但是它没有记录它更新组件的周期。
这是我的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()方法。因此,我相信它不会被删除并重新呈现。
在我这里的问题是什么?