post
ルートとコンポーネント内の親 ReactJS コンポーネントからメソッドにアクセスする方法がわかりません。を使用してreact-router
います。
これは
<RouteHandler {...this.state} />
のメソッド/関数pushToPostList()
は、ポスト オブジェクトを に保持されている配列に追加しますthis.state.myList
。
<Post />
コンポーネントを機能させようとしているので、 this.props.pushToPostList(newPost)
this.state.myList を更新するために呼び出されます<App />
ルーターは次のとおりです。
var routes = (
<Route handler={App} >
<DefaultRoute handler={SignUp} />
<Route name="feed" path="feed" handler={LatestFeed} />
<Route name="post" path="post" handler={Post} pushToPostList={this.pushToPostList} />
</Route>
);
Router.run(routes, function (Handler) {
React.render(<Handler />, document.body );
});
より多くのコード:
var App = React.createClass({
getInitialState: function() {
return {
myList: []
};
},
pushToPostList: function (object) {
if (object) {
var myTempPosts = this.state.myPostList;
myTempPosts.push(object);
this.setState( {myPostList: myTempPosts} );
}
},
render: function() {
return (
<div>
<RouteHandler {...this.state} />
</div>
);
}
});
var Post = React.createClass({
handleSubmit: function(e) {
e.preventDefault();
var myPostTxt = this.refs.myPostTxt.getDOMNode().value.trim();
this.props.pushToPostList( myPostTxt ); // Send object to parent ReactJS component.
},
render: function() {
return (
<div>
Post.
<textarea
ref="myPostTxt" />
<p />
<button onClick={this.handleSubmit} type="submit">Post</button>
</div>
);
}
});