I've had this same question. I've found that you could also pass down a function into a child component. Watch for a state change of the function from the parent component with a useEffect. And when the function is invoked in the child component, it will force a rerender in the parent component for the child component.