[英]this.setState is not working in componentDidUpdate
这段代码有一些问题,我认为是因为 `` setState 在这段代码中不起作用。
this.setState({
showTooltip: true,
toolTipsValue: message,
error: true
})
单击按钮之前
this.props.loginRes = {
responseCode: 1,
result: {}
}
点击按钮后
prevProps.loginRes = {
responseCode: 1,
result: {}
}
this.props.loginRes = {
responseCode: 1,
result: {
data: {},
statusCode: 1,
statusMessage: 'Invalid email/mobile'
}
}
componentDidUpdate(prevProps, prevState) {
if (this.props.loginRes !== prevProps.loginRes) {
const message = this.props.loginRes.result.statusMessage;
this.setState({
showTooltip: true,
toolTipsValue: message,
error: true
})
}
}
错误信息错误信息链接
作为winwiz1的补充。 (他说的是对的)。
您正在比较 componentDidUpdate 函数中的两个对象。 用 !== 比较两个对象是行不通的。 可以在这里找到为什么它不起作用的答案: 比较两个对象
解决方案是使用 isEqual 的 lodash,示例可以在这里找到: Depp compare between 2 objects
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.