首页 > 解决方案 > React useEffect 检测对象内部数组的变化

问题描述

我正在尝试使用 useEffect 挂钩根据状态更改来调用 API。但是,我的 useEffect 无法检测到对“类型”数组所做的更改。我尝试使用 use-deep-compare-effect 库,但它也无法检测到变化。

如何检测状态的变化?

任何帮助将不胜感激!

const [values, setValues] = useState({
        query: '',
        type: ["Tender & Auction", "Merger & Acquisition","Policy & Regulation", "Project Update", "Other"]
    })

 /// Re-run a query, after we check a filter
    useEffect(() => {
          searchAPI(values);
      }, [values]);

我正在改变这样的值:

 const handleChange = (newValues) => {
        console.log(newValues)
        setValues({ ...values, type: newValues})
   };

标签: reactjsuse-effect

解决方案


指定范围

useEffect(() => {
    searchAPI(values);
}, [values,values.type]);

推荐阅读