组件未卸载反应本机

1 javascript reactjs react-native react-navigation

在我的代码中,我在卸载组件时遇到问题。我正在使用抽屉导航器,当我在抽屉屏幕之间导航时,前一个屏幕并没有消失,当我再次打开该屏幕时,一切都还在那里。

但当我在抽屉屏幕之间导航时,我想重新渲染或卸载并再次安装组件。有办法吗?或者我如何手动卸载我的组件?我知道对此有很多疑问,但我找不到我想要的。

我的 React Native 版本是 0.63

sul*_*lam 9

反应导航永远不会破坏屏幕。这意味着您的屏幕永远不会卸载,或者当您返回时它永远不会重新安装(didMount)。要执行此类操作,请参阅下面的示例

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

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

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

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

参考:导航生命周期