vue.js 尝试连接$route.name时获取“"+”运算符无法应用于类型“symbol”,”

whlutmcx  于 2023-03-09  发布在  Vue.js
关注(0)|答案(1)|浏览(161)

尝试获取模板中的当前路由名称,并将其传递到路由器链接(即,将当前路由传递到登录视图,以便在用户通过身份验证后返回用户)。
它按预期工作,但在进行类型检查时,我得到:

The '+' operator cannot be applied to type 'symbol'.  
   :to="'/signin/' + $route.name".  
                     ~~~~~~~~~~~

我的代码很简单:

<RouterLink
      v-if="!userState.signedIn"
      :to="'/signin/' + $route.name"
      >Sign in</RouterLink
    >

有没有一种方法可以让我注解代码或者其他什么东西,这样Typescript就可以理解$route.name实际上是一个字符串?或者可以用不同的方法获得路由名称?
按照TJ Crowder在评论中的建议,我可以使用以下命令将属性转换/强制转换为字符串:

:to="'/signin/' + String($route.name)"

...但我猜如果$router.namesymbol的形式出现,则会失败。找不到值何时会是symbol而不是string

nzk0hqpo

nzk0hqpo1#

:to="`/signin/${$route.name}`”

试试这样写

相关问题