【发布时间】:2017-08-13 17:11:42
【问题描述】:
我在使用参数定义的 URL 重新加载页面时遇到问题。
在routes.js 文件中:
<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 组件中,我导入了react-router 的链接,以将其链接到ClassDetails 组件中。
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 组件中添加代码吗?您使用 Link 的方式可能存在一些问题,因为这应该是拦截点击并通过路由器而不是通过浏览器运行它。
-
是的,当然。我将编辑上面的帖子
标签: javascript reactjs react-router