首页 > 解决方案 > 在 next.js 中获取 url 查询参数时遇到问题

问题描述

我只是想在我的 url 中获取参数的值。

我是 next.js 的新手,但总的来说反应还很新。

我的网址看起来像:

localhost:3000/?code=VhXHWwRemC32dPmm3oj0mMravO6MP3

现在,我只是在渲染一个页面,例如:

const Index = () => {
       const router = useRouter();
       const code = router.query.code;
       console.log(code);
       return(
       <div>
           <p>code: {code}</p>
           <a href={Oauth.discord_login_url}login</a>
           </div>)
        };

这样我就可以查看是否从 url 中正确获取了代码。

一旦我以不和谐的方式登录,我就会返回 Index,然后 url 看起来就像我在上面显示的那样。我正在尝试获取代码的价值,以便我可以使用它。让我困惑的是

<p>code: {code}</p> 

成功在页面上显示“code”的值。但

console.log(code) 

显示未定义。为什么不一样?

标签: reactjsnext.js

解决方案


尝试添加getInitialProps

const Index = () => {
  const router = useRouter();
  const code = router.query.code;
  console.log(code); 

  Index.getInitialProps = async () => {
    return {};
  };

 return ( 
   <div>
     <p>code: {code}</p> 
     <a href={Oauth.discord_login_url}>login</a>
   </div>
  ) 

};

推荐阅读