Reactjs 检查路线是否允许或合理进入该路线

Reactjs 检查路线是否允许或合理进入该路线,reactjs,react-router,Reactjs,React Router,我有react应用程序和react路由器。路由“/item edit/:itemId”将用户指向可以编辑项目的表单。已删除的项目无法编辑,但很明显。通过应用程序,用户无法转到“已删除项目”编辑表单,但他可以在浏览器中键入正确的url(指向已删除项目表单的路径) 如何应对这种情况 我尝试使用函数(在componentWillMount中),该函数将请求发送到API,以检查是否允许项目编辑。若不是,应用程序会将用户重定向到另一个路由(项目列表)。一般来说,我不确定这是否是正确的解决方案…尝试制作一个

我有react应用程序和react路由器。路由“/item edit/:itemId”将用户指向可以编辑项目的表单。已删除的项目无法编辑,但很明显。通过应用程序,用户无法转到“已删除项目”编辑表单,但他可以在浏览器中键入正确的url(指向已删除项目表单的路径)

如何应对这种情况


我尝试使用函数(在componentWillMount中),该函数将请求发送到API,以检查是否允许项目编辑。若不是,应用程序会将用户重定向到另一个路由(项目列表)。一般来说,我不确定这是否是正确的解决方案…

尝试制作一个顶级组件,该组件提供一个上下文(一种可供所有子组件访问的道具),包含用户拥有的所有“权限”,以便您可以使用子组件中的此数据来显示编辑按钮或不显示。让react router在此组件内呈现所有需要身份验证的组件,如果未提供身份验证数据,则让此组件重定向用户。确定,但我仍必须发送请求以检查是否提供了身份验证数据(在componentDidMount中)。我说得对吗?试着制作一个顶层组件,该组件提供一个上下文(一种可供所有子组件访问的道具),包含用户拥有的所有“权限”,这样您就可以在子组件中使用此数据来显示编辑按钮或不显示编辑按钮。让react router在此组件内呈现所有需要身份验证的组件,如果未提供身份验证数据,则让此组件重定向用户。确定,但我仍必须发送请求以检查是否提供了身份验证数据(在componentDidMount中)。我说得对吗?