Vue.js 带筛选器的v-for给出未定义的属性或方法错误

Vue.js 带筛选器的v-for给出未定义的属性或方法错误,vue.js,vuex,Vue.js,Vuex,我正在将Vue2与Vuex一起使用。 我有一份来自 我想按降序显示它。 为此,我在main.js中创建了一个名为“desc”的过滤器,并将其应用于我的组件posts.vue,如下所示 <li v-for="post in posts | desc" :key="post.id"> 这是我的main.js import Vue from 'vue' import App from './App' import router from './router' import { sto

我正在将Vue2与Vuex一起使用。 我有一份来自 我想按降序显示它。 为此,我在main.js中创建了一个名为“desc”的过滤器,并将其应用于我的组件posts.vue,如下所示

<li v-for="post in posts | desc" :key="post.id">
  • 这是我的main.js

    import Vue from 'vue'
    import App from './App'
    import router from './router'
    import { store } from './store/store'
    
    Vue.config.productionTip = false
    
    Vue.filter('desc', function(arr){
      if(arr) return arr.reverse();
    });
    
    new Vue({
      el: '#app',
      router,
      store,
      components: { App },
      template: '<App/>'
    })
    
    从“Vue”导入Vue
    从“./App”导入应用程序
    从“./路由器”导入路由器
    从“./store/store”导入{store}
    Vue.config.productionTip=false
    Vue.过滤器('desc',函数(arr){
    如果(arr)返回arr.reverse();
    });
    新Vue({
    el:“#应用程序”,
    路由器,
    商店,
    组件:{App},
    模板:'

    我认为这可能会导致此错误,直到http get请求与响应一起出现。为了解决此问题,我还尝试使用静态json数据,但仍然显示此错误

    有人能帮我解决这个问题吗?

    尝试在v-for中使用slice().reverse()

    <li v-for="post in posts.slice().reverse()">
        //do something here
    </li>
    
  • //在这里做点什么

  • 来自文档
    Vue.js允许您定义可用于应用通用文本格式的筛选器。
    。使用computed或method获得反向数组