reactjs - 卸载时使用 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({});
- 空对象,但无论如何它不起作用?为什么?
解决方案
需要指出两个事实。
- 当您返回一个函数时,该函数将在该组件下次
useEffect
更新时触发。要了解更多信息,请查看(部分:清理效果) - 如果在
useEffect
依赖中添加一个空数组,效果只会运行一次(你是故意这样做的吗?)
由于第二个效果只触发一次,它可能不是你所期望的。
推荐阅读
- c# - 向 XML 文档添加多个元素
- javascript - 如何检测堆叠元素的点击?
- javascript - 如何修复'setAttributeNode(att)'以添加属性副修改现有?
- jenkins - 从作业日志中获取特定字符串
- c# - 使用 Cosmonaut 比较 CosmosDB SQL Api 中的 DateTime.Date
- regex - Prestashop 我无法使 regex_replace 工作
- html - 添加段落
Text to inline-block set of divs 将 div 放到下一行
- php - 是否可以通过自定义字段生成的动态值对 wp_query 循环进行排序/重新排序?
- sql - 在 OpenXML 查询中使用计数
- r - 是否可以在交互项中使用因变量?这会导致任何问题吗?