反応クラスがMainContainer
で、内容が表示されています。それには子供がいます。SidebarContainer
にはたくさんのリンクが記載されています。私は私のメインのコンテナをレンダリングし、何のparam値がURLに存在しない場合、デフォルトでフォールバックとして1のデフォルトのIDを使用したコンテンツの最初の部分をロード:反応ルータで同じコンポーネントを2回再利用する
var MainContainer = React.createClass({
getInitialState: function() {
return {
selectedContent: this.props.params.slug || 1
},
componentWillReceiveProps: function(nextProps, nextState) {
this.setState({
selectedContent: this.props.params.slug || 1
});
},
}
SidebarContainerコンポーネントは、リンクセレクタがあります。
<Link to={content.slug}>
{content.title}
</Link>
リンクをクリックすると、ブラウザのURLが目に見えて変わりますが、何も起こりません。もう一度クリックすると、正しいコンテンツがレンダリングされます。しかし、指定されたparamでURLをコピー・ペーストすると、最初に正しい内容がレンダリングされます。
ReactDOM.render((
<Router>
<Route path="/" component={MainContainer}/>
<Route path="/content/:slug" component={MainContainer}/>
</Router>
), document.getElementById('react-app'));
は私が間違ってcomponentWillReceiveProps
ライフサイクルメソッドを使用しています:
マイReactDOMはrenderメソッドは次のように反応・ルータの設定を持っていますか?
これは私が欠けていたものです。 – Simpleton