Video angezeigt ReactJS Komponente nicht aktualisiert

Ich bin neu ReactJS (0.13.1), und ich habe eine Komponente in meinem app zur Anzeige von HTML5-video.

Es scheint zu funktionieren perfekt, aber nur für die erste Auswahl. Das video, das aktuell angezeigt wird und das spielen in der Seite ändert sich nicht, wenn Sie wechseln von einem video zum anderen (wenn this.props.video änderungen).

Sehe ich die <source src='blah.mp4' /> elements update in den Chrome-inspector, sondern die tatsächlich erbrachte video in die Seite ändert sich nicht und hält zu spielen, wenn es das schon war. Dasselbe passiert in Safari & Firefox. Alle anderen Elemente aktualisieren entsprechend gut.

Irgendwelche Ideen?

Sowieso meine Komponente unter:

(function(){
  var React = require('react');

  var VideoView = React.createClass({

    render: function(){
      var video = this.props.video;
      var title = video.title === ''? video.id : video.title;

      var sourceNodes = video.media.map(function(media){
        media = 'content/'+media;
        return ( <source src={media} /> )
      });
      var downloadNodes = video.media.map(function(media){
        var ext = media.split('.').slice(-1)[0].toUpperCase();
        media = 'content/'+media;
        return (<li><a className="greybutton" href={media}>{ext}</a></li>)
      });

      return (

        <div className="video-container">
          <video title={title} controls width="100%">
            {sourceNodes}
          </video>
          <h3 className="video-title">{title}</h3>
          <p>{video.description}</p>
            <div className="linkbox">
              <span>Downloads:</span>
              <ul className="downloadlinks">
                {downloadNodes}
              </ul>    
            </div>
        </div>

      )
    }
  });
  module.exports = VideoView;
})();

UPDATE:

Beschreiben es anders:

Habe ich eine Liste von links mit onClick-Handler, legen Sie die Schrauben der Komponente.

Wenn ich auf ein video-link ("Video " Foo") für die erste Zeit bekomme ich

<video title="Video Foo" controls>
  <source src="video-foo.mp4"/>
  <source src="video-foo.ogv"/>
</video>

und "Video " Foo" angezeigt und abgespielt werden können.

Dann, wenn ich auf den nächsten ("Video Bar") die DOM-updates und ich bekomme

<video title="Video Bar" controls>
  <source src="video-bar.mp4"/>
  <source src="video-bar.ogv"/>
</video>

Jedoch ist es immer noch "Video " Foo", die ist sichtbar und kann gespielt werden.

Es ist wie einst der browser geladen hat, die Medien für eine <video> es ignoriert alle änderungen an der <source> Elemente.

  • geben Sie optional ist, ist der browser fragt den server die Bereitstellung der Datei für ein Typ ist, wenn es nicht zur Verfügung gestellt.
InformationsquelleAutor Dana | 2015-03-27
Schreibe einen Kommentar