首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vue:如何从数组中过滤数据

vue:如何从数组中过滤数据
EN

Stack Overflow用户
提问于 2020-12-13 07:20:00
回答 2查看 48关注 0票数 1

我是Vue的新手,我正在使用应用程序接口来显示数据,这里在我的代码中,当点击类别时,它保存类别的名称,并将用户重定向到另一个名为category.vue的页面,我的问题是重定向用户后,我现在想要显示的问题与该类别名称,只收到(作为过滤器),有办法做到这一点吗?

代码语言:javascript
复制
  /* this is how i saved data to transfer to category page */
  
  <div class="category" v-for="(categoryy,index) in category(question1)" :key="index">
   <router-link :to="`/category/${category(question1)}`"> {{ categoryy }} </router-link>
    
       </div> 

category.vue

代码语言:javascript
复制
<template>
  
    <div class="vw">
   <p> related question of </p>
    
  <p>{{ this.$route.params.cat }}</p> /* category name i sent appears here */
       
     <ul class="container-question" v-for="(question1,index) in questions" :key="index"  

  >
/* THE PROBLEM : it shows all questions without filtering */
  
     {{question1.question}}
         </ul>
    </div>
 
</template>
<script>
export default {
    
    props:
{
    question1: Object
},
data(){
    return{
questions: []
    }
    


},
computed:{
    category(){
        let category = this.$route.params.cat;
        return category
    }
},
mounted: function(){
fetch('https://opentdb.com/api.php?amount=10&category=9&difficulty=medium&type=multiple',{
  method: 'get'
})
.then((response) => {
  return response.json()
})
.then((jsonData) => {
  this.questions = jsonData.results
})
  }
}
</script>

EN

回答 2

Stack Overflow用户

发布于 2020-12-13 07:53:00

您可以首先使用此路由https://opentdb.com/api_category.php获取所有类别,正如我怀疑您已经在第一个vue页面上所做的那样。

然后,将类别的id作为路由参数进行传递。

这里似乎唯一遗漏的一件事是,您在挂载的fetch中硬编码了类别id 9。

您可能希望将其更改为:

代码语言:javascript
复制
fetch(`https://opentdb.com/api.php?amount=10&category=${this.category}&difficulty=medium&type=multiple`,{
  method: 'get'
})

这种方式使用您在上一页的路由器参数中创建的计算属性。

票数 0
EN

Stack Overflow用户

发布于 2020-12-13 16:42:17

你必须不在计算的属性中传递路由参数,而是直接在挂载的钩子上传递,

代码语言:javascript
复制
export default {
  mounted() {
    fetch(
      `https://opentdb.com/api.php?amount=10&category=${this.$route.params.cat}&difficulty=medium&type=multiple`,
      {
        method: "get",
      }
    )
      .then((response) => response.json())
      .then((jsonData) => (this.questions = jsonData.results));
  },
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65270863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档