Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 自定义挂钩中useEffect的生命周期是什么?_Reactjs - Fatal编程技术网

Reactjs 自定义挂钩中useEffect的生命周期是什么?

Reactjs 自定义挂钩中useEffect的生命周期是什么?,reactjs,Reactjs,我理解useffect就像组件上的事件侦听器,在每次重新渲染时运行(忽略dep) 当它在自定义钩子中时仍然是这样,还是在自定义钩子执行完毕后就被销毁了?示例代码如下: export default props => { const [data, setDataWithSideEffects] = customHook('initial value'); return ( <div> <button onClick={e => setDat

我理解
useffect
就像组件上的事件侦听器,在每次重新渲染时运行(忽略dep)

当它在自定义钩子中时仍然是这样,还是在自定义钩子执行完毕后就被销毁了?示例代码如下:

export default props => {
  const [data, setDataWithSideEffects] = customHook('initial value');
  return (
    <div>
      <button onClick={e => setDataWithSideEffects(e)>Click</button>
      <div>{data.title}</div>
    </div>
  )
}

const customHook = initialValue => {
  const [data, setData] = useState(initialValue);

  const setDataWithSideEffects = async event => {
    event.preventDefault();
    const response = await fetch("http://someUrl.com/api")
    const json = await response.json()
    setData(json); 
  }

  // how long does this live?
  useEffect(() => { // other side effects done every render });

  return [data, setDataWithSideEffects];
}
导出默认道具=>{
const[data,setDataWithSideEffects]=customHook(“初始值”);
返回(
setDataWithSideEffects(e)>单击
{data.title}
)
}
const customHook=initialValue=>{
const[data,setData]=useState(初始值);
const setDataWithSideEffects=异步事件=>{
event.preventDefault();
const response=等待获取(“http://someUrl.com/api")
const json=await response.json()
setData(json);
}
//这个能活多久?
useEffect(()=>{//每次渲染时都会产生其他副作用});
返回[data,setDataWithSideEffects];
}

我认为当调用它的组件重新呈现时,它会被调用。例如,与数据获取类似。明白你说的“它能活多久”是什么意思吗?它被执行了,就是这样