(object: T)
| 5 | * 对输入对象增加一层浅比较, 如果对象浅比较结果一致则返回原对象(防止更新) |
| 6 | */ |
| 7 | export function useShallowObject<T>(object: T): T { |
| 8 | const [state, setState] = useState<T>(object); |
| 9 | |
| 10 | useLayoutEffect(() => { |
| 11 | if (!shallowEqual(state, object)) { |
| 12 | setState(object); |
| 13 | } |
| 14 | }, [object]); |
| 15 | |
| 16 | return state; |
| 17 | } |