paramで定義されたURLでページを再読み込みすることに問題があります。 routes.js
ファイルで :コンポーネントクラスでparamsを持つ子供が反応ルータのページをリロードする
<Route path='/classes' component={Classes}>
<Route path='/classes/:class_id' component={ClassDetails} />
</Route>
は、私はこのように書いた:
render() {
const detailClasses = (this.props.classStore.classes && (this.props.classStore.classes.length > 0))
? this.props.classStore.classes.map(
(classDetailOverview, i) => {
return <ClassOverview classData={classDetailOverview} key={i} />}
): null;
return <div className="container">
<h2>Hello in Class Details page</h2>
<Box className="OgeClassesPage">
{this.props.children ? this.props.children : detailClasses}
</Box>
</div>;
}
そしてClassOverview
コンポーネントで、私はClassDetails
コンポーネントへのリンクのためにそれをreact-router
のリンクをインポートします。
render() {
const classUrl = 'classes/' + this.state.classOverview.class_id
return <Box className='OgeClassBox' alignContent='center' align='center'>
<a href={classUrl}><h3>
{this.state.classOverview.class_title}
</h3>
</a>
<img className='OgeClassImage' src={this.state.class_image} />
<div className='OgeClassDesc padding-10'>
{this.state.classOverview.class_description.slice(0, 100)}
</div>
</Box>
}
しかし、リンクをクリックしてクラスの詳細にアクセスすると、ページがリロードされます。私はこれについて理解していない、それはページをリロードしないでください。
私に何か提案がありますか?
ClassOverviewコンポーネントからコードを追加できますか?リンクを使用している場合、ブラウザを介さずにクリックを傍受し、ルータ経由で実行する必要があるため、問題を起こす可能性があります。 –
はい、もちろんです。私は投稿 – Francis