【问题标题】:nuxt. going to search page by this.$router.push clears URL query parameters努克斯特。通过 this.$router.push 去搜索页面清除 URL 查询参数
【发布时间】:2021-06-25 02:57:46
【问题描述】:

我想从主页转到 nuxt myApp.com/search?parameter=1 中的搜索页面。在主页中,我可以通过使用 nuxt-link 以两种方式进入搜索页面:

<NuxtLink
  :to="`/search?parameter=${number}`"
>
</NuxtLink>

或者我可以用一个方法:

goToSearch() {
  this.$router.push(`/search?parameter=${this.number}`);
},

当我使用nuxt-link 并登陆搜索页面时,url 正确,参数为:myApp.com/search?parameter=1 但是,当我使用与页面中的按钮相关的方法并进入搜索页面时,url 变为 myApp.com/search,这对我来说是个问题!

请注意,我有两个既有方法又有 nuxt-link。我该如何解决它,以便在使用该方法并转到搜索页面时保留参数?

【问题讨论】:

  • 我有一个不同的工作方式,也就是 search-page 而不是 searchsearch 而不是 parameter(因为这不是一个参数,而且它对最终用户更友好)。

标签: vue.js nuxt.js


【解决方案1】:

你应该使用这个,正如提到的in the documentation

<nuxt-link :to="{ path: 'search-page', query: { search: number } }">
  Try search page
</nuxt-link>

您也可以这样使用它,具体取决于您要达到的目标。

<button @click="$router.push({ path: 'search-page', query: { search: number } })">
  Try some other way
</button>

正确的/pages/search-page.vue 页面可以是found here

【讨论】:

  • 太棒了。一个问题,随着您的更改,我的 URL 看起来像 myApp.com/search-page?search=number。我怎样才能让它看起来像这样:myApp.com/search-page?number?谢谢!
  • 你不能这样做,因为你在混合东西。有:/search-page?search=4/search-page/4但没有中间立场。对于搜索,第一个搜索对于最终用户来说更为常见和逻辑。 @seyet
  • 知道了,伙计。我按照您建议的方式对其进行了修改,并且工作正常,但主要问题仍然存在,当我使用 @click 时,它会进入搜索页面,然后重置路由对象。使用nuxt-link 时不会发生这种情况。知道为什么吗?
  • 你能发一个minimal reproducible example吗?应该可以正常工作。
  • 我意识到问题所在,不是@click!基本上我想使用的事件是在按下回车键时出现问题。我需要做的是,当用户在输入中键入内容并按 Enter 时,它应该转到该路线。路线是正确的,你实现它的方式!
猜你喜欢
  • 2011-07-24
  • 2022-08-22
  • 2013-12-31
  • 2016-05-21
  • 2021-04-30
  • 1970-01-01
  • 1970-01-01
  • 2018-07-20
  • 1970-01-01
相关资源
最近更新 更多