【问题标题】:search bar filter using Vue js使用Vue js的搜索栏过滤器
【发布时间】:2021-07-29 12:28:58
【问题描述】:

我正在尝试过滤从 api 获取数据的表,我尝试了此解决方案,但它不起作用。 我找不到问题出在哪里,如果我通过了搜索输入事件侦听器

这是我的表格组件:

<template>
<table class="mt-12 border-2 border-gray-600">
  <thead>
    <tr>
      <th v-for="header in data.headers" :key="header" class="text-left border-l-2 border-gray-600 border-b-2 border-gray-600 bg-red-400 ">{{ header }}</th>
    </tr>
  </thead>
  <tbody>
    <tr v-for="(rows, index) in data.rows" :key="index">
      <td v-for="row in rows" :key="row" class="border-l-2 border-gray-600"  >{{ row }}</td>
    </tr>
  </tbody>
</table>
</template>
<script>
export default {
  props: {
    data: Object,
    default: {}
  }
}
</script>
<style src="../assets/tailwind.css"/>

我的问题:

如果有人可以帮助我定义我的问题并解决这个问题?

感谢您的帮助。

【问题讨论】:

标签: vue.js


【解决方案1】:

您可以在将数据作为道具传递的地方使用计算得出的数据。

 <BaseTable :data='data' /> 

这里不要像这样使用创建一个可以被过滤的计算数据。

<BaseTable :data='filteredData' />

在您的道具中,您可以简单地过滤它或直接发送数据。


computed: {
     filteredData() {
          if(this.search) {
               // filter your data as you want and return
            }
           else // return your main data
      }
}

这是一个简单的示例:

https://codesandbox.io/s/filterlist-example-vdwhg?file=/src/App.vue

并将您的包含更改为包含。

【讨论】:

  • 非常感谢,但我需要在 searchInput 组件中添加一些内容吗?
  • 哦,我困的时候不应该回答问题:D filtersrows 是你的方法。我会编辑
  • 我照你说的做了,表格消失了,当我在搜索输入中写一些东西时,它什么也没显示
  • OmerS 没问题我是 vue js 的新手,我正在努力学习,但我卡在这里
  • 好吧好吧我会编辑的。我发现了我的错误。
【解决方案2】:

您遇到了什么错误?我认为您在 filterRows 函数中使用 this.search ,它不是 vue 实例属性。它应该是 this.data.search。搜索也与 V-model 一起使用,因此您应该在数据(JSON 对象)之外声明它。

【讨论】:

  • 我没有收到任何错误,但它不起作用,我使用 this.data.search 也没有
猜你喜欢
  • 2018-06-22
  • 1970-01-01
  • 2019-03-03
  • 2021-11-08
  • 2020-10-07
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 2019-01-10
相关资源
最近更新 更多