私はReact JSを学んでいて、手を汚したかったです。私はシンプルなコメントシステムを構築するドキュメントのチュートリアルに従っています。反応成分に画像を追加
私はチュートリアルでは、次の類似した部品の構造を踏襲してきました:
郵便受け
- PostList
- ポスト
ここ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')
);
投稿コンポーネントに画像を追加するにはどうすればよいですか?私はそれをブラウザで[オブジェクト]としてレンダリングしていますか?
placeholder_pathが引用符の間にあるなぜですか?生成されたhtmlを見て、img htmlタグのsrc値が何であるか確認しましたか? – Caputo
また、 'postNodes'のループで' key'が必要です。 – activatedgeek
テストには何を使用しますか?使用したマークダウンを使用して質問を編集します。 –