此警告出现性能问题:
警告:无法在已卸载的组件上执行React状态更新。 这是空操作,但它表明应用程序中发生内存泄漏。 要解决此问题,请取消所有订阅和异步任务 componentWillUnmount方法。
当我尝试登录时,我已连接但未重定向到管理页面,因此我必须重新插入凭据,才能进入管理页面。 这是Login组件的代码:
ggplot(data = temps, aes(x = Temperature, y = "Proportions")) +
geom_point(aes(y = Carbohydrates),colour = "darkred",
fill = "darkred", shape = temps$Shape, size = 3) +
geom_line(aes(y = Carbohydrates))
我尝试与_isMounted一起使用,以便可以解决此问题,但是它不起作用!
答案 0 :(得分:1)
在我看来,您的第二个setState
可能是导致此问题的原因:
if (this._isMounted) {
this.setState({
redirectToReferrer: true
})
localStorage.setItem("tokens", JSON.stringify(response.data.token))
// try removing this second set state and see if it solves the issue
// this.setState({
// redirectToReferrer: true
// })
console.log(localStorage.getItem('tokens'))
}
看起来第一个setState
导致了重定向和卸载,因此,在调用第二个setState
时,该组件已经被卸载-从而导致错误。
还不清楚为什么首先需要同时使用这两个setState
,因为它们都进行相同的更改。