【问题标题】:How to get Proxy object content?如何获取代理对象内容?
【发布时间】:2023-03-16 10:45:02
【问题描述】:

我正在使用闪电网络组件和顶点类。这对我来说是新的。

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

但是当我控制台记录它时,我会得到这样的结果:

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 类提供的名称?或者一种显示代理对象内容或可用键的方法。

【问题讨论】:

  • 我遇到这个的时候也很困惑。

标签: javascript salesforce apex salesforce-lightning salesforce-communities


【解决方案1】:

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

JSON.stringify(this.accounts)

要在某些功能上实际使用它,请使用:

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

【讨论】:

    【解决方案2】:

    要获取可用的密钥,您可以在代理对象上使用Object.key & .data

    在您的情况下,您可以通过这种方式获取密钥:

    console.log(Object.keys(this.accounts.data[0]));
    

    【讨论】:

      【解决方案3】:

      所以你可以做的不是记录代理对象,而是执行 JSON.stringify():

      console.log("Show Proxy object accounts ", JSON.stringify(this.accounts)); 
      
      

      另一个很棒的技巧是使用自定义开发格式化程序:https://dev.to/daveturissini/debug-lightning-web-components-lwc-track-and-api-properties-using-chrome-dev-tools-formatter-49c5

      这个博客也提供了很多好的建议:https://developer.salesforce.com/blogs/2019/02/debug-your-lightning-web-components.html

      【讨论】:

        【解决方案4】:

        也可以展开proxy对象,展开handler对象,再展开originalTarget对象看看实际对象

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-07
          • 1970-01-01
          • 2021-08-29
          • 1970-01-01
          • 1970-01-01
          • 2022-11-07
          相关资源
          最近更新 更多