You can use useEffect/useLayoutEffect to achieve this:
const SomeComponent = () => { const [count, setCount] = React.useState(0) React.useEffect(() => { if (count > 1) { document.title = 'Threshold of over 1 reached.'; } else { document.title = 'No threshold reached.'; } }, [count]); return ( <div> <p>{count}</p> <button type="button" onClick={() => setCount(count + 1)}> Increase </button> </div> ); };
More about it over here.
If you are looking for an out of the box solution, check out this custom hook that works like useState but accepts as second parameter a callback function:
// npm install use-state-with-callback import useStateWithCallback from 'use-state-with-callback'; const SomeOtherComponent = () => { const [count, setCount] = useStateWithCallback(0, count => { if (count > 1) { document.title = 'Threshold of over 1 reached.'; } else { document.title = 'No threshold reached.'; } }); return ( <div> <p>{count}</p> <button type="button" onClick={() => setCount(count + 1)}> Increase </button> </div> ); };