2015-07-27 17 views
5

Mit React möchte ich das Audio Element bekommen.Wie bekomme ich ein Audio-Element?

var AudioPlayer = React.createClass({ 
    componentDidMount: function() { 
     console.info('Audio: component did mount'); 
     var audio = React.findDOMNode('audio'); 
     console.info('audio', audio); 
    }, 
    render : function() { 
     return (
      <audio src="/static/music/foo.mp3" controls /> 
     ); 
    } 
}); 

Aber ich immer erhalte die Fehlermeldung:

Error: Invariant Violation: Element appears to be neither ReactComponent nor DOMNode (keys: 0,1,2,3,4)

Sicherlich sind gesenkt Komponenten Klassen reagieren?

Antwort

6

Es funktioniert die Komponente Referenzen mit:

var AudioPlayer = React.createClass({ 
    componentDidMount: function() { 
     console.info('[AudioPlayer] componentDidMount...'); 
     this.props.el = React.findDOMNode(this.refs.audio_tag); 
     console.info('audio prop set', this.props.el); 
    }, 
    render: function() { 
     console.info('[AudioPlayer] render...'); 
     return (
      <audio ref="audio_tag" src="/static/music/foo.mp3" controls autoplay="true"/> 
     ); 
    } 
}); 
+0

React.findDOMNode seit 0.14.0 Reagieren ist veraltet, verwenden Sie stattdessen ReactDOM.findDOMNode –