Vue.js 添加活动类:单击

Vue.js 添加活动类:单击,vue.js,Vue.js,单击链接时,添加活动类时遇到问题 我有一个动态类设置,带有一个click侦听器,它将一个参数传递给函数,但该类不会更新。我不知道为什么。刷新页面时,“仪表板”链接为红色,因此我知道它在一定程度上正常工作 <template> <b-list-group> <b-list-group-item v-for="(link, index) in menu" :key="index" :href="link.sectionId

单击链接时,添加活动类时遇到问题

我有一个动态类设置,带有一个click侦听器,它将一个参数传递给函数,但该类不会更新。我不知道为什么。刷新页面时,“仪表板”链接为红色,因此我知道它在一定程度上正常工作

<template>
  <b-list-group>
    <b-list-group-item
      v-for="(link, index) in menu"
      :key="index"
      :href="link.sectionId"
      :class="{active: link.title === selectedLink}"
      :click="isActive(link.title)"
    >
      {{link.title}}
    </b-list-group-item>
  </b-list-group>
</template>

<script>

export default {
  data() {
    return {
      selectedLink: 'Dashboard',
      menu: [
        {
          title: 'Dashboard',
          icon: labStuffs,
          sectionId: '#'
        },
        {
          title: 'Lactose intolerance',
          icon: labStuffs,
          sectionId: '#'
        }
      ]
    }
  },
  methods: {
    isActive(title) {
      this.selectedLink === title
    }
  }
}
</script>

<style scoped lang="scss">
.active {
  background-color: red;
}
</style>

应更改已单击链接的背景颜色。只有dashboard链接是红色的,每当我单击任何其他内容时,都不会发生任何事情。

下面是代码的工作示例

我将:click改为@click,如下所示

methods: {
    isActive(title) {
      this.selectedLink = title // Had === before
    }
  }

你的方法中的this.selectedLink===title不应该是this.selectedLink=title吗?我收到一个控制台警告,说有一个无限循环哦,你在b-list-group-item上有一个href和一个click事件,它在html中呈现为锚定标记。是否希望在同一逻辑中处理路由更改和活动类?另外,它不应该是@click而不是:clickNice idea@BrandonFranklin,但是即使没有href,它也不会改变背景颜色。非常感谢!