【问题标题】:Convert api response array to another array to pass to Vue prop将 api 响应数组转换为另一个数组以传递给 Vue prop
【发布时间】:2019-07-01 20:54:01
【问题描述】:

我想使用this vue flipbook 组件,它需要一组用于道具“页面”的图像网址。我的帖子回复来自 wordpress rest api。

我需要从响应数组中获取“图像”属性并将其转换为另一个图像 url 数组。通常我会在我的模板中使用类似v-for=post in posts 计算的posts() 并在循环中显示类似post.image_full 的图像..

动画书组件:

<Flipbook
   class="flipbook"
   :pages="imagesArray" <--- images array here
   v-slot="flipbook"
   ref="flipbook"
   >
</Flipbook>

我的 Posts.vue 组件:

export default {
  name: 'GridOne',
  props: {
    page: {
      type: Number,
      required: true
    }
  },
  data() {
    return {
      request: {
        type: 'posts',
        params: { 
          per_page: this.$store.state.site.posts_per_page,
          page: this.page
        }, 
        showLoading: true 
      },
      totalPages: 0
    }
  },
  computed: {
    posts() {
      return this.$store.getters.requestedItems(this.request) <--- my response array
    }
  },
  methods: {
    getPosts() {
      return this.$store.dispatch('getItems', this.request)
    },
    setTotalPages() {
      this.totalPages = this.$store.getters.totalPages(this.request)
    }
  },
  created() {
    this.getPosts().then(() => this.setTotalPages())
  }
}

【问题讨论】:

    标签: javascript arrays vue.js vuejs2


    【解决方案1】:

    您可以使用 JavaScript 的“地图”功能。此函数接受一个数组并返回一个新数组。

    // If this is the response array....
    const response = [{name: 'image 1', url: 'https://uri.com/img1'}, ...]
    
    
    // Then you return something like this
    response.map(item => {
        return {
           ...item,
           image_full: item.url
        }
    })
    

    【讨论】:

    • 当我查看 vue devtools 时,我的帖子变得不确定。对不起,我还在学习,可能做错了。如果我只是做return this.$store.getters.requestedItems(this.request),我会从 api 得到正确的响应。我就是这样做的:computed: { posts() { const response = this.$store.getters.requestedItems(this.request) response.map(item =&gt; { return item.media_full }) } },
    • @shubhra 您必须在帖子功能结束时返回响应。 return response.map(item =&gt; { return item.media_full }) 还要考虑在交互之前检查 response 是否是一个有效变量
    猜你喜欢
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 2017-12-09
    • 2017-11-15
    • 2018-11-16
    • 2021-11-20
    相关资源
    最近更新 更多