【发布时间】:2021-01-29 01:28:15
【问题描述】:
知道为什么跟随 popUpBurned 的 setState 不起作用吗?
componentDidMount() {
const { user } = this.props
const { popUpBurned } = this.state
const visits = user.visitsCounter
if (visits === 6 && !popUpBurned) {
this.setState({ popUpBurned: true })
this._popupFeedbackVisits.show()
}
}
当访问数为 6 时,我需要我的 _popupFeedbackVisits 仅触发一次,这很好。但是当在同一次访问中,用户导航到另一个页面并返回仪表板时,弹出窗口再次触发(因为访问次数仍然是 6)。
如何使弹出窗口触发一次且仅触发一次?我的想法是添加该布尔值,但它似乎在 componentDidMount 中不起作用。我错过了什么?
谢谢!
【问题讨论】:
-
也许你应该使用像React Redux这样的存储引擎
-
您能告诉我们您在哪里以及如何设置访问计数器
-
popUpBurned 的初始值是多少?
-
同意,Redux 可能是一个很好的解决方案,或者新的Context API。另外,考虑将
popUpBurned状态存储在保持挂载的父级中。 -
visits-counter 在 /login 请求中设置并且工作正常。 popUpBurned 的初始值为 false。