我正在使用Navigator来浏览页面。
调用Navigator.push()方法时,不会在我们导航的页面上调用“componentWillUnmount”方法。
这有点问题,因为我想取消订阅听众等等。
这是正常行为吗? 什么时候实际调用“componentWillUnmount”?
答案 0 :(得分:11)
Navigator
使用堆栈来管理路由。当您推送新页面时,当前页面将无法卸载,如果您从新页面弹出到当前页面,则新页面将卸载。
在其他场景中,如果基于某些规则(如isLoading
或其他规则)渲染某个子组件,则componentWillUnmount
方法也会在不再需要渲染时调用。
答案 1 :(得分:0)
在react-native中,未按您期望的那样调用componentWillUnmount。而是尝试在您使用的任何导航库(我们正在使用react-navigation)中使用导航生命周期。