在 nextjs 中使用 router.push 清理 url

时间:2021-04-01 03:09:08

标签: reactjs frontend next.js push router

我有下面的代码。它重定向到 /home 并传递用户名变量。但是,在地址栏中,它显示 http://localhost:3000/home?username=bobmarley。如何干净地使用 next.js 传递变量?

import { withRouter } from 'next/router'
loginUser(this.state.user)
        .then(response => {
          var username = response['username'];

          if (username) {
            this.props.router.push({
              pathname: '/home',
              query: { username: username }
            });
          }
      });

1 个答案:

答案 0 :(得分:1)

使用 router.pushas 属性,这将是地址栏中显示的内容。将其设置为用于 pathname 的相同值。

<块引用>

as - 将在浏览器中显示的 URL 的可选装饰器。

this.props.router.push({
  pathname: '/home',
  as: '/home',
  query: { username: username }
});