【问题标题】:How can i render PageNotFound.js if i am not provinding parameter value to URL?如果我没有向 URL 提供参数值,我如何呈现 PageNotFound.js?
【发布时间】:2019-07-25 21:50:05
【问题描述】:

当我点击我在邮件中收到的链接(具有包含身份验证令牌的密钥)时,它会将我重定向到更新密码页面。但如果用户刚刚输入,我不想重定向它网址。

[http://localhost:3000/update-password?key=ZXlKaGJHY2lPaUpJVXpJMU5pSXNJblI1Y0NJNklrcFh] 应该重定向到更改密码页面,[http://localhost:3000/update-password] 应该重定向到 PageNotFound 页面。希望你能理解。

【问题讨论】:

    标签: javascript reactjs react-router-dom


    【解决方案1】:

    你应该遵循三个步骤:

    1. react-router获取当前search

      const {
         location: { search }
      } = propsFromReactRouter
      
    2. 检查,search 是否包含密钥。您可以手动使用https://www.npmjs.com/package/query-string 进行操作。

      import { parse } from 'query-string';
      const searchData = parse(search);
      
      const { key } = searchData;
      
    3. 如果搜索不包含关键字,则重定向到未找到的页面

      import {Redirect} from 'react-router-dom'
      // ...
      return (
          <Redirect to="/404" />
      )
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-08
      • 2013-05-21
      • 1970-01-01
      • 2023-03-04
      • 2021-12-06
      • 2022-11-02
      • 2011-04-01
      • 1970-01-01
      相关资源
      最近更新 更多