在React中将Click Event Listener添加到Adobe数据层



我刚刚开始进入Adobe Analytics的世界。我在React中使用Typescript,并试图利用adobe数据层将信息发送到adobe Launch。我已经能够成功地使用adobe推送功能(即window.adobeDataLayer.push({ test: 'test succeeded' })(,并且可以通过window.adobeDataLayer.getState()在控制台中看到这一点,并运行了一个简单的测试来确认它已进入adobe Launch。

然而,当涉及到添加事件侦听器时,我被难住了。我试图遵循Adobe的文档,并得出以下结果(doStuff((只是为了确认eventListeners按预期工作,他们确实这样做了(:

function myHandler(event: any): void {
console.log("My handler was called")
}
function doStuff() {
console.log('do stuff was called')
}
function adobeAnalyticsTest(): void {
console.log(' adobeAnalyticsTest function called')
window.adobeDataLayer = window.adobeDataLayer || []
window.adobeDataLayer.push({ test: 'test succeeded' })
window.addEventListener('click', doStuff)
window.adobeDataLayer.push(function (dl: any) {
dl.getState()
dl.addEventListener('click', myHandler)
})
}
useEffect(() => {
adobeAnalyticsTest()
}, [])

查看window.adobeDataLayer,我看不到任何似乎表明存在点击事件侦听器的内容(尽管这可能是我的无知(,也没有"调用了我的处理程序"登录到控制台。有人知道我做错了什么吗?或者知道如何判断什么时候正确?

从表面上看,代码中似乎没有任何实际调用adobeAnalyticsTest()的内容。

此外,连接到dl的侦听器不会侦听DOM事件,比如单击window中的某个内容(比如window.addEventListener行(;它侦听推送到CCD_ 7的有效载荷,其中传递的CCD_。

例如,将adobeDataLayer.push({'event':'click'})放在您的js控制台中,您应该会看到"我的经纪人被称为"。

将其视为订阅CustomEvent(因为这就是它的本质(,而不是本地DOM事件。

最新更新