getState()
getState() 메서드가 ACDL(Adobe 클라이언트 데이터 레이어) 계산된 상태의 복사본을 반환합니다. 지금까지 푸시된 모든 데이터를 병합한 결과입니다.
adobeDataLayer.getState(path?: string | string[]): any
이 메서드는 ACDL이 로드된 후에만 존재합니다. 코드가 그 전에 실행될 수 있는 경우 푸시하는 함수에서 해당 코드를 호출합니다. Call 메서드를 안전하게을(를) 참조하십시오.
전체 계산된 상태 가져오기 entire-state
인수 없이 getState() 호출:
window.adobeDataLayer = window.adobeDataLayer || [];
window.adobeDataLayer.push({ page: { title: "Getting started" } });
window.adobeDataLayer.push({ component: { "hero-1": { title: "Learn more", link: "learn-more.html" } } });
window.adobeDataLayer.push(function(dl) {
console.log(dl.getState());
});
콘솔에는 다음 개체가 표시됩니다.
{
"page": {
"title": "Getting started"
},
"component": {
"hero-1": {
"title": "Learn more",
"link": "learn-more.html"
}
}
}
푸시된 항목이 없으면 getState()에서 빈 개체({})를 반환합니다.
경로에서 값 가져오기 paths
계산된 상태에서 값을 하나 가져오려면 경로를 전달합니다. 패스의 키를 점을 사용하여 구분합니다.
window.adobeDataLayer.push(function(dl) {
dl.getState("component.hero-1"); // { title: "Learn more", link: "learn-more.html" }
dl.getState("component.hero-1.title"); // "Learn more"
});
경로에는 다음 규칙이 적용됩니다.
- 배열 항목: 항목의 인덱스를 키로 사용합니다(예:
cart.items.0.sku). ACDL 3.x는 대괄호 표기법을 지원하지 않습니다(예:cart.items[0].sku). - 점이 포함된 키:
["component", "hero.1", "title"]과 같이 문자열 대신 키 배열로 경로를 전달합니다. - 누락된 값: 경로에 키가 없으면
getState()에서undefined을(를) 반환합니다. 오류가 발생하지 않습니다. - 반환 형식: 경로의 값은 개체, 배열, 문자열, 숫자 또는 부울과 같은 모든 형식일 수 있습니다.
반환된 값은 복사본입니다. copies
getState()은(는) 계산된 상태 자체가 아니라 계산된 상태의 복사본을 반환합니다. 반환된 개체를 변경해도 데이터 레이어는 변경되지 않습니다.
const state = adobeDataLayer.getState();
state.page.title = "Changed";
adobeDataLayer.getState("page.title"); // Still "Getting started"
계산된 상태를 변경하려면 push()(으)로 변경 내용을 푸시합니다.
경로를 전달한 경우에도 각 호출은 전체 계산된 상태를 복사합니다. 데이터 레이어가 큰 페이지에서는 스크롤 처리기와 같이 자주 실행되는 코드에서 getState()을(를) 호출하지 마십시오. 값을 한 번 읽고 다시 사용합니다.
이벤트 수신기에서 상태 읽기 in-listener
이벤트 수신기가 실행될 때 계산된 상태에 이 이벤트를 트리거한 푸시의 데이터가 이미 포함되어 있습니다.
window.adobeDataLayer.push(function(dl) {
dl.addEventListener("adobeDataLayer:change", function(event) {
console.log("New page title:", dl.getState("page.title"));
}, { path: "page.title" });
});
recommendation-more-help
experience-platform-help-collection