react自定义hooks解决内存泄漏

销毁组件时,报警告:

 

解决:

  utils/hooks.ts

复制代码
export const useFetchState = (...props: any) => {
  const focus = useRef<any>(null);
  const [state, setState] = useState(...props);
  useEffect(() => {
    focus.current = true;
    return () => (focus.current = false);
  }, []);
  const setFetchState = useCallback((...params) => {
    focus.current && setState(...params);
  }, []);
  return [state, setFetchState];
}
复制代码

  组件中使用useFetchState替代useState

    import { useFetchState } from '@/utils/hooks'

  // const [yearOption, setYearOption] = useState<any[]>([]) // 学年options
  // const [monthOption, setMonthOption] = useState<any[]>([]) // 月options
  const [yearOption, setYearOption] = useFetchState([]) // 学年options
  const [monthOption, setMonthOption] = useFetchState([]) // 月options

 

posted @   吴小明-  阅读(363)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
历史上的今天:
2020-04-26 git从主分支上拉取新分支以及提交代码、合并到主分支
2020-04-26 前端项目初始化
点击右上角即可分享
微信分享提示