1. 使用对象的具体 Value function useGetProducts(filters: Record<string, string>) { useEffect(() => { syncFilters(filters); }, [...Object.values(filters)]); } 会收到 lint 警告,因此必须禁用它才能提交代码。 2. 手动传递每个值 function useGetProducts(filters: Record<string, string>) { const { brand, color } = filters; useEffect(() => { syncFilters({ brand, color }); }, [brand, color]); } 繁琐、麻烦 3. 第三方 useDeepCompareEffect 钩子 function useGetProducts(filters: Record<string, string>) { useDeepCompareEffect(() => { syncFilters(filters); }, [filters]); } 4. 对象进行字符串化 function useGetProducts(filters: Record<string, string>) { const json = JSON.stringify(filters); useEffect(() => { const filters = JSON.parse(json); syncFilters(filters); }, [json]); }