react改变props为什么shouldComponentUpdate触发了3次?
1.执行 componentDidMount
后执行了一个异步任务
2.异步任务完成后执行 setState
这里观察到 shouldComponentUpdate
执行了三次,(改变 props
)
请问这是为什么呢?
什么时候什么原因触发的这三次shouldComponentUpdate
呢?
伪代码:
export default class extends React.Component {
constructor(props) {
super(props);
this.state = {
source: require('../.....a.png'),
};
}
componentDidMount() {
this.init();
}
shouldComponentUpdate(nextProps, nextState) {
console.log('shouldComponentUpdate');
const needUpdate = JSON.stringify(nextProps) !== JSON.stringify(this.props) || nextState !== this.state;
return needUpdate;
}
init = async () => {
asyncFn().then((source) =>
this.setState({
source,
})
);
};
render() {
return <Image
{...this.props}
source={this.state.source}/>;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论