@jarto
.NET developer (be + fe)

Как передать DOM через prop?

Пишу проигрыватель видео.
<div id="media-player" className="small-12 small-centered large-centered">
        <video id="media-video"
                       width="100%"
                       src=""
                       controls
                       ref={(player) => this.mediaPlayer = player}>
       </video>
       <PlayerControls/>
</div>

тут есть сам компонент видео проигрывателя (<video/>) и компонент контролов (ProgressBar, Play/Pause...). Так вот, все действия, внутри контролов мне нужно проводить внутри самих контролов, но воздействовать они будут на DOM элемент <video/>. Можно ли как-то передать этот компонент внутрь, как например <PlayerControls player={this.mediaPlayer}/>? Пытался в Component Lyfecycle методах, но там он еще не отрендерен и поэтому Null. А на DidMount у меня уже контролы отрендерятся.

Да, можно было бы внутри контролов делать getElementById, но сами понимаете, делать это в каждом из компонентов (они скорее всего будут биться на подкомпоненты) не оч хорошо, придется несколько раз делать query.

Спасибо.
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
Не проще ли сделать общего родителя для видео и элементов управления?

<mediaPlayer>
  <video ref={(v) => this.video = v} />
  <playerControls onStop={...} onPlay={...} onPause={...} />
</mediaPlayer>

Тогда элементы управления смогут общаться с проигрывателем через общего родителя.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@timfcsm
сорри, кажется не правильно понял задачу
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы