尝试解决提示内存泄漏的“已卸载组件的状态更新”错误

时间:2021-03-09 19:49:32

标签: javascript reactjs typescript

我在开发者控制台中收到一条错误消息,提示与我的 useEffect() 相关的内存泄漏类型。该错误建议开发某种形式的“清理”功能,但我不确定为什么会首先发生这种情况或如何进行开发。我应该如何处理这个问题?我有问题的 useEffect() 函数如下:

useEffect(() => {
    window.addEventListener('scroll', handleScroll);
    return () => window.removeEventListener('scroll', handleScroll);
  }, []);

  useEffect(() => {
    if (!isFetching) return;
    fetchMoreListItems();
  }, [isFetching]);

  useEffect(() => {
    let mounted = true;
    if (!props.resource) return;
    props.resource
      .follow('item-collection')
      .followAll('item')
      .then(resources => {
      if (mounted) {
         setItems(resources);
        }
      })
      .catch(err => console.error('Error fetching resources: ' + err));
      return () => mounted = false;
  }, [itemResource]);

0 个答案:

没有答案