Reactjs 将自定义挂钩重置为初始状态

Reactjs 将自定义挂钩重置为初始状态,reactjs,react-hooks,Reactjs,React Hooks,我创建了一个自定义挂钩,用于检测是否在组件外部进行了单击: 从'react'导入{useffect,useState}; 常量useOutsideClick=(ref)=>{ const[clickOutside,setClickOutside]=使用状态(false); useffect(()=>{ 常量handleClick=(e)=>{ 参考电流?包含(如目标) ?设置单击外部(错误) :SetClickOut(真); }; document.addEventListener('click

我创建了一个自定义挂钩,用于检测是否在组件外部进行了单击:

从'react'导入{useffect,useState};
常量useOutsideClick=(ref)=>{
const[clickOutside,setClickOutside]=使用状态(false);
useffect(()=>{
常量handleClick=(e)=>{
参考电流?包含(如目标)
?设置单击外部(错误)
:SetClickOut(真);
};
document.addEventListener('click',handleClick);
return()=>document.removeEventListener('click',handleClick);
},[ref]);
返回单击外部;
};
导出默认UseOutside单击;
我在一个主要部件上使用挂钩。用户单击组件外部后,挂钩需要重置为其初始状态(
outsideClick=false
):

const-App=()=>{
常量[activeComponent,setActiveComponent]=useState(null);
const dropDownRef=useRef();
const outsideClick=使用outsideClick(dropDownRef);
useffect(()=>{
如果(外部单击){
setActiveComponent('WhatAreYouWorkingOn');
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//此时,outsideClick需要再次为false
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
}
},[outsideClick,setActiveComponent]);
返回(
);
}
导出默认应用程序;

如何将
useOutsideClick
重置为其初始状态?

为什么不从
useOutsideClick
导入的
useOutsideClick
钩住并在
setActiveComponent
后运行它,正如@iamcastelli所说,只需常量[outsideClick,setOutsideClick]=useOutsideClick(…)并使用setOutsideClick将其设置为false。内部使用外部单击返回[外部单击,设置外部单击]