使用useRoute获取页面路径,为什么刷新后route.path 一直是 '/' ?

// index.ts
router.beforeEach(async to => {
  const localeStore = useLocaleStore()
  await localeStore.fetchLocales() // 调用store里面的方法
})
export const useLocaleStore = defineStore('locale', () => {
  const route = useRoute()

  const locale = ref<Locale>()

  const locales = ref<Locale[]>()

  watch(locale, () => {
    // 输出点开对象,可以看到值
    console.log(route)
    // 只要刷新页面,route.path 一直是 / ,但url路径是http:localhost:3000/sign-in
    fetchLocale(route.path)
  })

  const fetchLocales = () => { // 在router.beforeEach中触发
    return searchLocales().then(({ data }) => {
      locales.value = data
      locale.value = data[0] // 触发watch
    })
  }

  return { locale, locales, fetchLocale, fetchLocales }
})

试过useRouter或者直接引入router,但是刷新页面,获得的一直是 / 首页的路径

阅读 977
1 个回答

beforeEach 中没有执行 next() 函数吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏