React-router在replace语句中传递值

时间:2016-03-13 06:50:16

标签: reactjs react-router react-router-redux

我有一个带有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'吗?为什么它不适用于替换?

0 个答案:

没有答案