gpt4 book ai didi

javascript - React-router 重定向到主页

转载 作者:行者123 更新时间:2023-11-30 20:14:40 27 4
gpt4 key购买 nike

我有很多职业、项目和申请工作的路线。

但我只想谈项目我有很多从后端获取的项目数据

在一个单独的项目中,我有关于这个名为 ProjectDetails 的项目的信息(这是呈现单个项目的组件)所以 f.e http://localhost:4000/#/projects/913 ID 为 913 的有关于 ID 为 913 的获取项目的信息等等。

我想要实现的是将用户重定向到 http://localhost:4000/ (主页)如果他在 url 中输入不存在的内容,f.e http://localhost:4000/#/projects/someID (永远不会从后端获取 someID)

对于如何使用 React-router 的 Redirect 组件实现这一点有什么想法或建议吗?

我的 ProjectDetails 组件如下所示:

let ProjectDetails = ({ projects, match }) => {
if (!projects.length) return false;
const project = projects.find(item => item.Id == match.params.id);
return (
<Element name='Projects'>
<SectionActiveTile match={match} name={project.Title}>
<div className='project_details_content'>
<div className="project_images">
<LazyImg src={`http://mywebsite.co/media/projects/${project.ImageURL}`} alt={`${project.Title} image`} />
<div className="project_icons">
{!!project.WebSiteURL &&
<a target='_blank' href={project.WebSiteURL}>
<LazyImg src={webImg} alt="Web img" />
</a>
}
{!!project.iTunesStoreURL &&
<a target='_blank' href={project.iTunesStoreURL}>
<LazyImg src={appStoreImg} alt="AppStore img" />
</a>
}
{!!project.GooglePlayURL &&
<a target='_blank' href={project.GooglePlayURL}>
<LazyImg src={googlePlayImg} alt="Google Play img" />
</a>
}
</div>
</div>
<div className="project_description">
<h4>Customer:</h4>
<p>{project.Customer}</p>
<h4>Project Facts:</h4>
<p>{project.ProjectFacts}</p>
<h4>Technologies:</h4>
<p>{project.Technologies}</p>
</div>
</div>
</SectionActiveTile>
</Element>
);
};

项目信息从父组件传递到 ProjectDetails

已更新

这是我的路线:

    <Switch>
<Route path='/projects/:id' component={ProjectDetails} />
<Route path='/career/:id' component={CareerDetails} />
<Route path='/apply-for-job' render={(props) => (
<ModalWindow
{...props}
modalHeader='Apply form'>
<ApplyForm history={props.history} />
</ModalWindow>
)} />
<Route path='/' component={withScrollPreservation(LandingPage, Footer)} />
</Switch>

最佳答案

可以通过以下方式处理不匹配

     <Switch>
<Route path='/projects/:id' component={ProjectDetails} />
<Route path='/career/:id' component={CareerDetails} />
<Route path='/apply-for-job' render={(props) => (
<ModalWindow
{...props}
modalHeader='Apply form'>
<ApplyForm history={props.history} />
</ModalWindow>
)} />
<Route path='/' component={withScrollPreservation(LandingPage, Footer)} />
<Route component={HomePage}/>
</Switch>

请引用documentation了解更多详情

关于javascript - React-router 重定向到主页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52038274/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com