3
これについて多くの質の高い文書を見つけることはできません。 React Router v4のドキュメントには、 'history'オブジェクトの情報がありますが、それは変更可能であり、変更すべきではないと述べています。私が見た多くの例は、「ハック」のように見えます。どんな洞察にも感謝します。反応ルータv4はプログラムによって経路を変更します
これについて多くの質の高い文書を見つけることはできません。 React Router v4のドキュメントには、 'history'オブジェクトの情報がありますが、それは変更可能であり、変更すべきではないと述べています。私が見た多くの例は、「ハック」のように見えます。どんな洞察にも感謝します。反応ルータv4はプログラムによって経路を変更します
自分で反応する初心者のためにしばらくの間、この1つに取り組まなければなりませんでした。 @ ToddChaffeeが提供しているリンクは良い洞察を与えていますが、thisスレッドは、最上位コンポーネントとして<Router/>
がある場合、履歴オブジェクトが自動的に小道具として渡されることを強調しています。これにより、ヒストリオブジェクトを個別にロードし、createBrowserHistory()
メソッドを使用するよりもずっと簡単になります。
以下の私の仕事:
<Route exact path='/' render={({history}) =>
<Home infoHandler={this.handleUserInfo}
imageHandler={this.handleImage}
history={history}/>
}/>
をその後することができますコンポーネント内:
this.props.history.push('/routeYouWantToGoTo');
あなたはモジュールをエクスポートする前に、あなたのコンポーネントで小道具をです。TypeCheckすることを忘れないでください:
にHome.propTypes = {
history: React.PropTypes.object
}
export default Home;
これは既にここで回答済みです。http://stackoverflow.com/questions/42672842/how-to-get-history-on-react-rou ter-v4。希望が役立ちます。 –
@ToddChaffeeああ、私は参照してください。変更可能なので、ヒストリオブジェクトのロケーションプロパティを信頼するのではなく、ヒストリに新しいルートをプッシュするのは問題ありません。ありがとう! –
はい、あなたは言った。履歴オブジェクトを使用して新しいルートをプッシュすることは、私の経験ではうまくいきます。 –