VueJs / Nuxt Фильтр массива, ошибка _vm.filtered .. не является функцией - PullRequest
1 голос
/ 26 марта 2020

Я новичок в Vue / Nuxt и пытаюсь отфильтровать массив.

computed: mapState({
  entries: state => state.archives.archives
}),

filteredArchive, function (objects, key) {

  if (objects) {
    return objects.filter(function(object) {
      return object.tag === key
    })
  }

Я хочу получить результат в al oop:

<li v-for="(entry, index) in (entries | filteredArchive('test'))">{{ entry.title }}</li>

Это не удается .. Что не так в моем подходе ..

Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020

ок. это мое решение на данный момент:

<ul>
    <li v-for="(entry, index) in filteredByTag(entries, 'test')">
      <nuxt-link :to="'archive/' + entry.id">{{ entry.title }}</nuxt-link>
    </li>
  </ul>

computed: mapState({
  entries: state => state.archives.archives,
}),

methods: {
  filteredByTag(entries, tag){
    return entries.filter((entry) => {
      return entry.tag.match(tag)
    })
  }
},
0 голосов
/ 26 марта 2020

Я предлагаю создать вычисляемое свойство для «FilterArchive» вместо фильтра. На самом деле, я считаю, что фильтры исчезают в Vue 3. Вы можете поместить его в миксин, если вам нужно разделить логику c между компонентами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...