1

我想将 response.data 的分页结果分配给 Vue 数据
,所以显而易见的方法很简单

    this.data = response.data.data
    this.total = response.data.total
    this.perPage = response.data.per_page

但是有没有一种 ES6 方法可以将结果直接分配给这样的东西?

    const page = { data, total, per_page : perPage } = response.data
    this = { ...this, ...page }

注意:上面的代码不起作用。

4

2 回答 2

2

不带this-this不能重新分配。

如果data对象包含这些属性,并且您将 的per_page属性更改response.dataperPage,那么您可以使用Object.assign

Object.assign(this, response.data);

如果data对象包含其他属性,或者您无法重命名per_page,则:

const { data, total, per_page : perPage } = response.data
Object.assign(this, { data, total, perPage });
于 2020-03-23T04:39:06.993 回答
0

因此,从@CertainPerformance 的答案中,并研究如何从How to get a subset of a javascript object's properties中检索对象的子集属性

我得到了一个对象解构的工作解决方案。

    const page = (({ data, total, per_page: perPage }) => ({ data, total, perPage }))(response.data)
    Object.assign(this, page)

但是代码没有缩短或更容易阅读,所以我回到明显的方式。

于 2020-03-23T05:17:04.250 回答