J'ai le code de réaction simple suivant dans mon fichier JSX:
/** @jsx React.DOM */
var Hello = React.createClass({
render: function() {
return <div><img src='http://placehold.it/400x20&text=slide1' alt={event.title} class="img-responsive"/><span>Hello {this.props.name}</span></div>;
}
});
React.renderComponent(<Hello name="World" />, document.body);
La sortie dans le DOM est la suivante:
<div data-reactid=".0">
<img src="http://placehold.it/400x20undefined1" data-reactid=".0.0">
<span data-reactid=".0.1">
<span data-reactid=".0.1.0">Hello </span>
<span data-reactid=".0.1.1">World</span>
</span>
</div>
J'ai deux problèmes avec ça:
Des idées?
N'oubliez pas que votre img n'est pas vraiment un élément du DOM mais une expression javascript.
C'est une expression d'attribut JSX. Placez des accolades autour de l'expression de chaîne src et cela fonctionnera. Voir http://facebook.github.io/react/docs/jsx-in-depth.html#attribute-expressions
En javascript, l'attribut class est une référence utilisant className. Voir la note dans cette section: http://facebook.github.io/react/docs/jsx-in-depth.html#react-composite-components
/** @jsx React.DOM */
var Hello = React.createClass({
render: function() {
return <div><img src={'http://placehold.it/400x20&text=slide1'} alt="boohoo" className="img-responsive"/><span>Hello {this.props.name}</span></div>;
}
});
React.renderComponent(<Hello name="World" />, document.body);
var Hello = React.createClass({
render: function() {
return (
<div className="divClass">
<img src={this.props.url} alt={`${this.props.title}'s picture`} className="img-responsive" />
<span>Hello {this.props.name}</span>
</div>
);
}
});