Run side effect when a prop changes w/Hooks
There is a React Hook for side effects useEffect
. You can pass useEffect
a function and that function will run after each render.
useEffect(() => console.log('rendered!'));
In many cases it's inefficient and unnecessary to call the effect function after every render. useEffect
has a second argument of an array of values. If passing in this second argument, the effect function will only run when the values change.
useEffect(() => console.log('value changed!'), [props.isOpen]);
Now, you will see "value changed!" both on the first render and everytime isOpen
changes.
Reminder: React Hooks are for functional components not class components. Check out the hooks api here
Tweet