да все просто, когда состояние меняется, например от пользовательского ввода, необходимо его засетить, для этого вызывается метод setState(). Он и провоцирует рендер компонента. Дальше за родителем все дочерние компоненты перерендериваются. И если у них поменялись пропсы - то будут отрисовывать согласно новых данных