reactjs - 如果一个 setState 持有一个对象,如何仅根据对象的某些属性进行监听和重新渲染?

const [var, set_var] = useState({prop_1: 1, prop_2: 2})

基本上如何做到这一点:

useEffect(() =>, [var.prop_1])

useEffect(() =>, [var.prop_2])

回答1

从一个数组中收集你想要监听的属性,并将它们添加到 useEffect deps 中的 [] 中。

const ages = students.map((s) => s.age);

useEffect(() => {
    // Now you can listen to any cahnges in the array Object for "age" property!
    console.info("ages", ages);
}, [ages]);

https://codesandbox.io/s/listen-re-render-on-array-object-state-change-2kd49k?file=/src/App.js

相似文章

最新文章