如何获取代理对象的内容?

15

我正在使用 Lightning Web Component 和 Apex 类。这对我来说是新的。

我正在尝试获取由 Apex 类生成的 Proxy 对象 的内容。

但是当我在控制台中记录它时,我的结果如下:

Proxy { <target>: {}, <handler>: {…} }
这是我的LWC组件:
import { LightningElement, track, wire } from "lwc";
import getAllActiveAccounts from "@salesforce/apex/AccountsController.getAllActiveAccounts";

export default class HelloWorld extends LightningElement {
  @wire(getAllActiveAccounts) accounts;

  @track foo;
  click() {
    console.log("Show Proxy object accounts ", this.accounts); // Show Proxy object
    console.log("Foo", this.accounts.name); // Show `undefined`
  }
}

Apex类:

public with sharing class AccountsController {
  @AuraEnabled(cacheable = true)
  public static List < Account > getAllActiveAccounts() {
    return [SELECT Id, Name FROM Account LIMIT 10];
  }
}

这个HTML模板是一个按钮,点击后会显示console.log

我想知道是否有可能显示由Apex类提供的名称?或者显示代理对象内容或可用键的方法。


当我也遇到这个问题时,我感到非常困惑。 - Daft
4个回答

23

要打印代理对象,请使用:

JSON.stringify(this.accounts)

要在某些函数上实际使用它,请使用以下内容:

let accounts = JSON.parse(JSON.stringify(this.accounts))
console.log(accounts.name) 

6
要获取可用的键,您可以在代理对象上使用Object.key.data。在您的情况下,您可以通过以下方式获取键:
console.log(Object.keys(this.accounts.data[0]));

5

2
你可以展开代理对象、展开处理器对象,然后展开原始目标对象,查看实际对象。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接