Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在React Native Android中,当从随后的屏幕返回按钮时,组件是否重新安装?_Android_React Native - Fatal编程技术网

在React Native Android中,当从随后的屏幕返回按钮时,组件是否重新安装?

在React Native Android中,当从随后的屏幕返回按钮时,组件是否重新安装?,android,react-native,Android,React Native,每当用户进入屏幕时,我都需要将屏幕更新到服务器上,因此将AJAX调用放在componentDidMount()方法中。AJAX是在navigator.push()进入屏幕时调用的,但是当它从随后的屏幕(navigator.pop()返回按钮时调用的。我的理解是,当navigator推到下一个屏幕时,组件被卸载,而当返回时,组件被重新装载。我的理解错了吗?似乎componentDidMount()不是在下面的屏幕中的navigator.pop()之后调用的 非常感谢 组件在堆栈中向前移动(添加路由

每当用户进入屏幕时,我都需要将屏幕更新到服务器上,因此将AJAX调用放在componentDidMount()方法中。AJAX是在navigator.push()进入屏幕时调用的,但是当它从随后的屏幕(navigator.pop()返回按钮时调用的。我的理解是,当navigator推到下一个屏幕时,组件被卸载,而当返回时,组件被重新装载。我的理解错了吗?似乎componentDidMount()不是在下面的屏幕中的navigator.pop()之后调用的


非常感谢

组件在堆栈中向前移动(添加路由)时不会卸载。对于您想要做的事情,您需要有一个组件监听didfocus或willfocus,并检查即将在回调中显示的路由

文件:

用法示例:
破解它的一种方法是对BackAndroid回调进行条件检查。例如,通过在路由堆栈中执行循环,如果其中有后续页面,则不要调用navigator.pop方法。这样,“后退”按钮侦听器仅在添加它们的页面及其附属抽屉页面中工作