使用 React useEffect 进行清理

时间:2021-06-09 03:27:31

标签: javascript reactjs react-hooks use-effect

好的,所以我大致了解我遇到的错误。

“无法对卸载的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要修复,请在 useEffect 清理函数中取消所有订阅和异步任务。”

我知道我需要做一些类似于在 useEffect 函数中添加已安装组件的事情。我实际上不太确定如何实施它,确切地说,是我正在做的事情。

useEffect(() => {
        fetchShippingCountries(checkoutToken.id)
        
    }, []);

    useEffect(() => {
        if (shippingCountry) fetchSubdivisions(shippingCountry);
    }, [shippingCountry]);

    useEffect(() => {
        if (shippingSubdivision) fetchShippingOptions(checkoutToken.id, shippingCountry, shippingSubdivision);
    }, [shippingSubdivision]);

我做了一些研究,这似乎是我需要遵循的表格,但它对我不起作用。

useEffect(() => {
  let mounted = true;

  fetchItems().then((newItems) => {
    if (mounted) {
      setItems(newItems);
    }
  });

  return () => {
    mounted = false;
  };
}, []);

0 个答案:

没有答案