0
を使用してリアクト:は、私は2クラスに反応していJsのSetState関数が反応ルータ
const PostList = React.createClass({
getInitialState: function() {
return {
status: "loading",
posts: []
}
},
render: function() {
return (
<div id="container">
<ReactRouter.Link to="upload"></ReactRouter.Link>
<a href="#/upload">{this.state.status}</a>
{
this.state.posts.map(function (post) {
return (
<Post post={post} />
);
})
}
</div>
);
}
});
const Upload = React.createClass({
render: function() {
return (
<div className="upload">Upload</div>
);
}
})
const MainContent = React.createClass({
render: function() {
return (
<div>
<Header />
<div id="inner-content">
{this.props.children}
</div>
<Footer />
</div>
);
}
})
const routes = (
<Route path="/" component={MainContent}>
<ReactRouter.IndexRoute component={PostList} />
<Route path="upload" component={Upload} />
</Route>
)
var render = ReactDOM.render(<Router history={History}>{routes}</Router>, document.getElementById("content"));
私は新しい記事をレンダリングするPostListにSETSTATE機能にアクセスすることができますどのように質問はありますか?
投稿新しい投稿が到着したときに、私はちょうど彼の新しいポスト(S)
悪い申し訳ありませんとの完全なhtmlコードを再描画するためにPostListの状態を設定したいsocket.io conenctionを通じて更新されます英語...
そのは、ありがとうございました!ソケットリスナーを設定 しかし、アップロードしてメインページに戻る(最新表示なし)(ポストリストを表示する)ポストリストが私の投稿を認識しなかったのはなぜですか?だから私はページをリフレッシュせずに戻るときに、投稿は再び空です... 私は間違っていますか? – MSzucs
マインドがあなたを助けてくれたら、私の答えを受け入れますか? (: そのページから移動すると、コンポーネントがアンマウントされ、レンダリングされたDOM要素が削除され、アップロードページに置き換えられます。ページに戻ると、データはありません。既存のデータをフェッチするために 'componentDidMount()'の始めにデータフェッチコールを実装する 'socket.on( 'update')'メソッドは、新しいポストがあることをコンポーネントに伝えるだけで、既存のポストをフェッチしません。 –
@MSzucsデータの取得コードを設定する場所を示すために私の答えを更新しました。 –