首页 > 解决方案 > componentWillUnmount 内的 react-native console.log

问题描述

一个非常简单的应用程序中的根组件......放入的任何调试代码componentWillUnmount都不会显示在调试器窗口中

const App = () => {
  useEffect(
    () => () => {
      console.log('Will unmount - cleanup...'); // not logged
    },
    []
  );
};

为什么?以及如何调试该清理代码...

标签: reactjsreact-native

解决方案


正确的语法是:

useEffect(() => {
    // Logic to run on mounting and update  

    return () = {
        // Clean up code
        console.log('------');  // this will log every time when component unmounts
    }
}, [dependency array]);

[]是依赖数组,如果空白useEffect()仅在挂载时运行,并且每次都会执行其清理功能。如果数组中有一些值,那么只要该值发生变化,useEffect()就会再次执行。


推荐阅读