Vue.js路由器链接在Firefox上不起作用

时间:2018-07-01 07:01:20

标签: vue.js vue-router

我有这个按钮组件:

    <button :class="classes" v-on="$listeners" v-bind="$attrs">
    <template v-if="to">
      <router-link :to="to" class="flex center-v">
        <AqIcon :icon="icon" v-if="icon" />
        <slot></slot>
      </router-link>

    </template>
    <template v-else>
      <AqIcon :icon="icon" v-if="icon" />
      <slot></slot>
    </template>

  </button>

它可以接受:to道具,在这种情况下,我使用路由链接而不是文本。

当我这样使用它时:

<AqButton primary icon="plus" :to="{name:'editUser',params:{id:'new'}}">
     Add User
</AqButton>

在chrome上可以正常工作,但在FF上可以更改网址,但它会保留在同一页面上。

1 个答案:

答案 0 :(得分:2)

因此,显然,如果将路由器链接嵌套在按钮元素下,则无法使用。

所以我将组件更改为这样:

<template>
  <router-link v-if="to" :to="to" :class="classes" v-on="$listeners" v-bind="$attrs">
    <AqIcon :icon="icon" v-if="icon" />
    <slot></slot>
  </router-link>

  <button v-else :class="classes" v-on="$listeners" v-bind="$attrs">
    <AqIcon :icon="icon" v-if="icon" />
    <slot></slot>
  </button>

</template>

现在可以使用了。