是否可以在nextjs中更改路由

9wbgstp7  于 2023-03-08  发布在  其他
关注(0)|答案(1)|浏览(163)

我已经创建了路由到"/search/xxxx"的搜索功能,但它位于标头中,所以当我再次搜索时,它会重复路由并生成"/search/search/xxx"
除了react-router之外还有什么方法可以解决这个问题吗?或者你能给予我一些建议吗?

const searchHandler = (e) => {
  e.preventDefault();
  if (router.asPath.startsWith("/search")) {
    history.back();
  }
  router.push("search/" + searchText);

  console.log(searchText); //sil

  setSearchText("");
  searchRef.current.blur();
};
pjngdqdw

pjngdqdw1#

不要使用相对路径,因为相对路径总是把你写的任何东西作为路径值附加到现有的url上,而是使用绝对路径,这样router.push("search/" + searchText);就会变成router.push("/search/" + searchText);
这里search/是相对的,/search/是绝对的。确保添加/search/之前的任何内容,因为它不会被追加。
例如,如果路径类似于http://localhost:3000/user/search/jhon,则绝对路径将是/user/search/jhon,因此是router.push("/user/search/" + searchText);

相关问题