Вопрос решился самостоятельной подпиской на события.
import { useCallback, useEffect, useRef, useState } from "react";
import "./styles.css";
export default function App() {
const [counter, setCounter] = useState(0);
const divRef = useRef(null);
const inc = useCallback(() => setCounter((c) => c + 1), []);
const dec = useCallback(() => setCounter((c) => c - 1), []);
useEffect(() => {
divRef.current.addEventListener("transitionrun", inc);
divRef.current.addEventListener("transitionend", dec);
() => {
divRef.current.removeEventListener("transitionend", dec);
divRef.current.removeEventListener("transitionrun", inc);
};
}, []);
return (
<div className="App">
<div ref={divRef} className="withtransition">
{counter}
</div>
</div>
);
}