Я бы предложил вытягивать самые последние значения через ссылку вместо обновления обратного вызова.
В целом, для обратных вызовов вам не нужно обновлять их, если вы извлекаете значения во время их запуска , Я не предлагаю, чтобы вы всегда делали это по умолчанию, но в некоторых случаях это может привести в порядок, если вы перестроите архитектуру, чтобы вызвать вызов, если можете.
const someRef = useRef(null);
useEffect(() => {
someRef.current = someChangingValue;
}, [someChangingValue]);
const renderLeaf = useCallback(() => {
const latestValues = someRef.current;
// use latest values…
}, []);