Ich habe ein Problem mit einer reaktiven Videokomponente, ich habe 2 Komponenten, die erste ist eine Videokomponente, er kann Youtube Video spielen, die zweite ist eine Liste von Videoelementen, und wenn ich auf ein Kind dieser Liste klicke, Ich möchte das Video der ersten Komponente (der Videokomponente) ändern, aber ich versuche seit 2 Stunden, neue Requisiten an eine andere Komponente zu senden, und ich kann dies nicht tun.React - Wie kann ich den Status von einer anderen Komponente aktualisieren?
Dies ist mein Code für:
erste Komponente (Videoblock)
var VideoMainItem = React.createClass({
getInitialState: function() {
return {
video: null
};
},
handleClick: function() {
var button = $(this.refs.button);
var thumbnail = $(this.refs.thumbnail);
button.hide();
thumbnail.hide();
this.setState({
video: <VideoHook source={this.props.source} />
});
},
render: function() {
return (
<div className="nativ-VideoBlockComponent-main">
<div className="nativ-VideoBlockComponent-main-video">
<span ref="button" onClick={this.handleClick} className="nativ-VideoBlockComponent-main-video-button"></span>
<div ref="thumbnail" className="nativ-VideoBlockComponent-main-video-thumbnail"></div>
{this.state.video}
</div>
<div className="nativ-VideoBlockComponent-main-content">
<span className="nativ-VideoBlockComponent-main-content-title">Lorem ipsum dolor sit amet</span>
<span className="nativ-VideoBlockComponent-main-content-description">At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias Excepturi sint occaecati cupiditate non provident.</span>
</div>
</div>
);
}
});
zweite Komponente (Liste der Videos)
var VideoCarousselItem = React.createClass({
getInitialState: function() {
return {
video: this.props.video
};
},
addThumbnail: function(video) {
return {
'backgroundImage': 'url(' + asset('assets/images/videoblock/thumbnail_01.jpg') + ')'
};
},
handleClick: function() {
console.log('VideoCarousselItem::handleClick');
<VideoMainItem video={this.state.video} />
},
render: function() {
return (
<div className="nativ-VideoBlockComponent-caroussel-item">
<span className="nativ-VideoBlockComponent-caroussel-item-button"></span>
<div onClick={this.handleClick} className="nativ-VideoBlockComponent-caroussel-item-thumbnail" style={this.addThumbnail(this.state.video)}></div>
</div>
);
}
});
Wenn irgendwelche Leute, eine Lösung oder eine Alternative danke im voraus
Grüße
William
Vielen Dank, ich versuche, diese –