如何获取代理对象内容?
How to get Proxy object content?
我正在使用闪电网络组件和 apex class。这对我来说是新的。
我正在尝试获取由 Apex class 生成的 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`
}
}
顶点class:
public with sharing class AccountsController {
@AuraEnabled(cacheable = true)
public static List < Account > getAllActiveAccounts() {
return [SELECT Id, Name FROM Account LIMIT 10];
}
}
Html 模板是一个在点击时显示 console.log
的按钮。
我想知道是否可以显示顶点提供的名称class?或者显示代理对象内容或可用键的方法。
所以你可以做的不是记录 Proxy 对象,而是执行 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
要获取可用密钥,您可以在 Proxy 对象上使用 Object.key
& .data
。
在您的情况下,您可以通过以下方式获取密钥:
console.log(Object.keys(this.accounts.data[0]));
也可以展开proxy对象,展开handler对象,再展开originalTarget对象,看看实际对象
要打印代理对象,请使用:
JSON.stringify(this.accounts)
要在某些功能上实际使用它,请使用:
let accounts = JSON.parse(JSON.stringify(this.accounts))
console.log(accounts.name)
我正在使用闪电网络组件和 apex class。这对我来说是新的。
我正在尝试获取由 Apex class 生成的 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`
}
}
顶点class:
public with sharing class AccountsController {
@AuraEnabled(cacheable = true)
public static List < Account > getAllActiveAccounts() {
return [SELECT Id, Name FROM Account LIMIT 10];
}
}
Html 模板是一个在点击时显示 console.log
的按钮。
我想知道是否可以显示顶点提供的名称class?或者显示代理对象内容或可用键的方法。
所以你可以做的不是记录 Proxy 对象,而是执行 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
要获取可用密钥,您可以在 Proxy 对象上使用 Object.key
& .data
。
在您的情况下,您可以通过以下方式获取密钥:
console.log(Object.keys(this.accounts.data[0]));
也可以展开proxy对象,展开handler对象,再展开originalTarget对象,看看实际对象
要打印代理对象,请使用:
JSON.stringify(this.accounts)
要在某些功能上实际使用它,请使用:
let accounts = JSON.parse(JSON.stringify(this.accounts))
console.log(accounts.name)