私は、レコードのリストを表示しているreactJSの例を試しています。削除するたびにリストを更新してください。このエラーの見出しによって多くの疑問が出てきましたが、何も私と一緒に働いていませんでした。Uncaught TypeError:reactJSで未定義のプロパティ 'props'を読み取ることができません
var CommentBox = React.createClass({
loadCommentsFromServer: function() {
$.ajax({
url: this.props.listUrl,
dataType: 'json',
success: function (data) {
this.setState({data: data});
}.bind(this),
error: function (xhr, status, err) {
console.error(this.props.url, status, err.toString());
}.bind(this),
cache: false
});
},
getInitialState: function() {
return {data: []};
},
componentDidMount: function() {
this.loadCommentsFromServer();
},
onClickingDelete: function() {
alert('Upper layer on click delete called');
this.loadCommentsFromServer();
},
render: function() {
return (
<div className="commentBox">
<h1>Static web page</h1>
<CommentList data={this.state.data} onClickingDelete={this.onClickingDelete} />
</div>
);
}
});
var CommentList = React.createClass({
render: function() {
if (this.props.data != '') {
var commentNodes = this.props.data.content.map(function (comment) {
return (
<div className="comment" key={comment.id}>
<h2 className="commentpageName">
{comment.pageName}
</h2>
<p> {comment.pageContent} </p>
<DeleteButton deleteUrl={'/delete/' + comment.id} onClickingDelete={this.props.onClickingDelete}/>
</div>
);
});
}
return (
<div className="commentList">
{commentNodes}
</div>
);
}
});
var DeleteButton = React.createClass({
onClickingDelete: function() {
$.ajax({
url: this.props.deleteUrl,
type: 'delete',
success: function() {
alert('Successfully deleted');
this.props.onClickingDelete();
}.bind(this),
error: function (xhr, status, err) {
console.error(this.props.deleteUrl, status, err.toString());
}.bind(this),
cache: false
});
},
render: function() {
return (
<button name={this.props.deleteUrl} onClick={this.onClickingDelete}>Delete</button>
);
}
});
ReactDOM.render(<CommentBox listUrl="/list/"/>, document.getElementById('content'));
は、ページの読み込みで、私は「キャッチされない例外TypeError:未定義のプロパティ 『小道具』を読み込めません」取得していますDeleteButtonにCommentListのラインコールに。 "this"がどのように定義されていないのかも知れない。助けてください。
をあなたは要素を削除しているため。あなたのコンポーネント全体が削除されます。しかし、あなたはthis.props.somethingをコールバックしています。これを呼び出すポインタを作成してみてください。 –
@ジョン、それはコメントリストコンポーネントで "onCommentSubmit = {this.handleCommentSubmit}"なしで動作していました。混乱を避けるためにその行を削除しました。ページの読み込み時に上記のエラーが発生しています。そのために残念。助けてください。 – User1230321