首页 > 解决方案 > Vue:创建方法中的参数值不会改变

问题描述

我有这个链接到另一个带有 params 的组件:

<div class="dropdown-menu bg-light" aria-labelledby="navbarDropdown">
      <div v-for="category in categories" :key="category.id">
         <div v-if="lang=='ku'"><li><a class="dropdown-item font-weight-bold py-2" href="#" ><router-link :to="{name:'category',params:{id:category.id}}">{{category.catagory_ku}}</router-link></a></li></div>

          <div v-else><li><a class="dropdown-item font-weight-bold py-2" href="#" ><router-link :to="{name:'category',params:{id:category.id}}">{{category.catagory_ar}}</router-link></a></li></div> 
          </div>
     </div>

像这样的类别组件:

<template>
    <div style="margin-top:132px">
        Categories {{id}}
    </div>
</template>
<script>
export default {
data(){
    return {
        id :''
    }
},
created(){
    this.id=this.$route.params.id
}
}
</script>

当我按下路由链接时,url 中的 id 值发生了变化,但在页面视图中,它只取了我点击的第一个 id 值,并且在我点击了另一个相同的链接后,我点击了不同的 id 值并没有改变

标签: vue.jsparametersrouterlink

解决方案


尝试定义idas 计算属性:

<template>
    <div style="margin-top:132px">
        Categories {{id}}
    </div>
</template>
<script>
export default {
   computed:{
      id(){
        return this.$route.params.id
      }
 }
}
</script>


推荐阅读