当我在react native中导航到新页面时如何强制卸载组件?

VK1*_*VK1 2 lifecycle react-native react-navigation

我想确保在导航到新页面时会触发生命周期方法ComponentWillUnmount。我找到了这篇文章,但是似乎没有提到导航到新页面。我也找到了这篇文章,但是我正在使用react-navigation。另外,我没有使用pop / push。我只是使用this.props.navigation.navigate('SomePage')进入下一页

sul*_*lam 8

React 导航永远不会破坏屏幕。这意味着您的屏幕永远不会卸载,或者当您返回时它永远不会重新安装(didMount)。为此,您必须使用useFocusEffect

import React, { useCallback } from 'react';
import { useFocusEffect } from '@react-navigation/native';

const Home = () => {
  useFocusEffect(
    useCallback(() => {
      // Do something when the screen is focused/mount

      return () => {
        // Do something when the screen is unfocused/unmount
        // Useful for cleanup functions
      };
    }, [])
  );

  return <Home />;
}
Run Code Online (Sandbox Code Playgroud)

参考:导航生命周期


Sar*_*hah 6

您可以使用this.props.navigation.replace('routName'); 它将完成您的工作。


归档时间:

查看次数:

1567 次

最近记录:

6 年,8 月 前