我需要检查Facebook的到期日期和我输入两个不同组件的当前日期。 Dashboard
和Pages
。两者都有:
componentWillMount() {
const { linkedAccount, clearLinkedAccounts, getFacebookPages } = this.props
const now = moment().format('YYYY-MM-DD HH:mm:ss')
if (linkedAccount) {
if (now < linkedAccount.expiresIn) {
getFacebookPages()
} else {
clearLinkedAccounts()
}
}
}
componentWillUnmount() {
const { linkedAccount, clearLinkedAccounts } = this.props
const now = moment().format('YYYY-MM-DD HH:mm:ss')
if (linkedAccount && now > linkedAccount.expiresIn) {
clearLinkedAccounts()
}
}
但是只有在手动刷新页面时,才会通过运行clearLinkedAccounts()
执行componentWillMount
,但在离开之前,它不会。如果有必要,我希望在进入另一条路线之前执行它。
答案 0 :(得分:0)
刷新页面不像是从同一个应用程序上下文中的页面转到另一个页面。 React router允许您在具有Link
标记的React单个应用中从一个页面转到另一个页面。这就是为什么反应路由器如此有用!
当您点击链接转到另一个Link
的网页时,React单个应用仍然有效。因此,componentWillUnmount
将被调用,因为单个应用程序能够卸载组件。
刷新页面(F5)时,会加载新页面。结果,整个现有的单个应用程序被删除并提供给浏览器垃圾收集器。在这种情况下,您无法控制React组件。所以不可能调用componentWillUnmount
,因为根本没有其他组件。