我有一个带有onEnter参数的路由,当用户点击“/ project”时会将用户重定向到默认(第一个)项目:
<Route path="project" onEnter={redirectToDefaultProject}/>
和redirectToDefaultProject:
const redirectToDefaultProject = (nextState, replace, callback) => {
$.get('/api/projects')
.then((response) => {
if (projects.length) {
replace({
pathname: '/projects/' + projects[0].id,
state: { nextPathname: nextState.location.pathname,
projects: projects } // I can't get 'projects' in the Project component
});
callback();
}
// else ...
}
}
我需要Project组件中的项目,所以我可以列出它们。 现在我根本无法访问项目,它只是没有附加到组件。
The API有点模糊:
的替换(pathOrLoc)
与推送相同,但用新的替换当前历史记录条目。
推送就像:
router.push({
pathname: '/users/12',
query: { modal: true },
state: { fromDashboard: true }
})
我假设负责/ users / 12 /的组件可以通过this.state或this.props.route.state获取'fromDashboard'吗?为什么它不适用于替换?