在android机上,无论点击左上角的返回或者物理键返回键,都会及时触发componentWillUnmount(页面销毁)方法,往往我们会在这个方法中移除监听、定时器等。但是在iOS上稍有差异,比如当前页面返回时,并不会立即触发componentWillUnmount方法(几百毫秒之后才会触发),这就可能导致当前页面一些需要移除或重置的内容未能及时处理,而出现一些意象不到的情况发生。可自行测试如下场景:A页面->B页面->迅速返回到A页面->迅速到B页面(在iOS设备上会保存之前的存留一些信息)。
解决方法:因平台差异,我们可以在每次进入B页面的componentWillMount() 预加载的生命周期中,对当前页面特殊标记的变量等做判空或重新初始化等操作。