问题
A page displays a list of objects [{name:, age:}, ...]
A second page allows to update the name of a particular object.
Then using hooks, how should I implement useEffect()
so the list on the front page updates only when a name change has been detected?
const [objects, setObjects] = useState([]);
useEffect(()=> {
getAllObjects()
},[getAllObjects, objects]);
回答1:
Instead of passing the entire object to the dependency array, make sure that you only pass name. Which you can do by returning the names
const [objects, setObjects] = useState([])
useEffect(()=> {
getAllObjects()
}, [getAllObjects, ...objects.map(item => item.name)])
来源:https://stackoverflow.com/questions/56010536/react-hooks-trigger-useeffect-when-a-nested-property-changes-in-a-collection-o