Если отвечать ровно на то, что было спрошено - из родительского компонента в дочерний передавайте функцию, которая будет вызываться в эффекте, зависящем от отслеживаемого значения.
В родительском компоненте:
<ChildComponent onChange={onChange} />
В дочернем:
useEffect(() => props.onChange(val), [ val ]);
Но вообще, это странно. Обычно, если надо отправлять изменения какого-то значения родителю, то само значение хранится там же, в родителе, и передаётся через props (вместе с функцией, которая его обновляет).