Ich lerne React JS und wollte meine Hände schmutzig machen. Ich befolge das Tutorial in den Dokumenten, das ein einfaches Kommentarsystem erstellt.Bild hinzufügen, um die Komponente zu reagieren
Ich habe eine ähnliche Komponentenstruktur gefolgt, die das Tutorial folgt:
PostBox
- PostList
- Beitrag
Hier ist die main.js :
var Post = React.createClass({
rawMarkup: function() {
var md = new Remarkable();
var rawMarkup = md.render(this.props.children.toString());
return {
__html: rawMarkup
};
},
render: function() {
return (< div className = "post" >
< h2 className = "commentTitle" > {
this.props.title
} < /h2> < span dangerouslySetInnerHTML = { this.rawMarkup() }/> < /div>
);
}
});
var PostList = React.createClass({
render: function() {
var postNodes = this.props.data.map(function(post) {
return (< Post title = {
post.title
} > By: {
post.by
} < img src = {
'placeholder_path'
}
/> </Post >);
});
return (< div className = "postList" > {
postNodes
} < /div>);
}
});
var PostBox = React.createClass({
loadPostsFromServer: function() {
$.ajax({
url: this.props.url,
dataType: 'json',
cache: false,
success: function(data) {
this.setState({
data: data
});
}.bind(this),
error: function(xhr, status, err) {
console.log("error " + data);
console.error(this.props.url, status, err.toString());
}.bind(this)
});
},
getInitialState: function() {
return {
data: []
};
},
componentDidMount: function() {
this.loadPostsFromServer();
setInterval(this.loadCommentsFromServer, this.props.pollInterval);
},
render: function() {
return (< div className = "postBox" >
< PostList data = {
this.state.data
}
/> </div >
);
}
});
ReactDOM.render(< PostBox url = "/api/posts"
pollInterval = {
2000
}
/>,
document.getElementById('content')
);
Wie füge ich der Post-Komponente ein Bild hinzu? Ich bekomme das als [Objekt] im Browser gerendert?
warum placeholder_path zwischen Anführungszeichen? Haben Sie sich das generierte HTML angesehen, um zu sehen, was der src-Wert des HTML-Tags img ist? – Caputo
Auch Sie brauchen 'Schlüssel' in der Schleife für' postNodes', nur um sicher zu sein. – activatedgeek
Was verwenden Sie zum Testen? Bearbeiten Sie Ihre Frage mit dem verwendeten Abschlag. –