首页 > 解决方案 > 卸载时使用 useEffect 调度

问题描述

我想在组件卸载时调度。我的派遣:

 useEffect(() => {
      add({
        ...values,
      });
  }, [var]);
  
const add = payload => {
      dispatch({ type: 'ADD_S', payload })
      return dispatch({ type: 'UPDATE_S' })
 }
 
 //now i unmount
 
 useEffect(() => {
    return () => {
      add({}); //when unmount i want to send an emty data
    }
  }, []);

我的情况是,当我卸载组件时,我想发送add({});- 空对象,但无论如何它不起作用?为什么?

标签: reactjs

解决方案


需要指出两个事实。

  • 当您返回一个函数时,该函数将在该组件下次useEffect更新时触发。要了解更多信息,请查看部分:清理效果)
  • 如果在useEffect依赖中添加一个空数组,效果只会运行一次(你是故意这样做的吗?)

由于第二个效果只触发一次,它可能不是你所期望的。


推荐阅读