我有下面的代码。它重定向到 /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 }
});
}
});
答案 0 :(得分:1)
使用 router.push 的 as
属性,这将是地址栏中显示的内容。将其设置为用于 pathname
的相同值。
as
- 将在浏览器中显示的 URL 的可选装饰器。
this.props.router.push({
pathname: '/home',
as: '/home',
query: { username: username }
});