如题:
useEffect 依赖是数组 而数组援用地址 又不停变动解决方案

最粗犷的解决办法,而我也在我的项目中用过几次,很无奈

办法1:

useEffect(() => {  ...}, [JSON.stringify(object)]);

办法2:
能够基于 useRef 和深比拟办法来解,useRef 的个性是跨渲染周期缓存数据。此处用来缓存上一次渲染的数据,并调用深比拟办法判断,如果两个对象相等则返回上一次的数据,地址天然也没有变动。

import { isEqual } from 'lodash';const useCampare = (value: any, compare: any) => {  const ref = useRef<any>(null);  if (!compare(value, ref.current)) {  // deep compare    ref.current = value;  }  return ref.current;}const compareObject = useCampare(object, isEqual);useEffect(() => {  ...}, [compareObject]);