2017-08-04 49 views
0

我想在我的React應用程序中設置堆分析。我有一個index.js(沒有自定義index.html)。窗口變量聲明在React的index.js中不起作用

在說明中,它是說我應該把腳本放在標籤之間。我假設對於我的情況,我只是在index.js中做到這一點。

這是腳本:

window.heap=window.heap||[],heap.load=function(e,t) 
{window.heap.appid=e,window.heap.config=t=t||{};var r=t.forceSSL||"https:"===document.location.protocol,a=document.createElement("script");a.type="text/javascript",a.async=!0,a.src=(r?"https:":"http:")+"//cdn.heapanalytics.com/js/heap-"+e+".js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(a,n);for(var o=function(e){return function(){heap.push([e].concat(Array.prototype.slice.call(arguments,0)))}},p=["addEventProperties","addUserProperties","clearEventProperties","identify","removeEventProperty","setEventProperties","track","unsetEventProperty"],c=0;c<p.length;c++)heap[p[c]]=o(p[c])}; 
heap.load(MY_APP_ID); 

然而,heap is not defined error出現。

,我應該怎麼做呢?

+1

如果你不使用html,它是如何被加載到瀏覽器中的? –

+0

你能提供你的index.js代碼嗎? – assembler

回答

0

我通過更新變量聲明來實現它。

var heap = []; 
heap.load = ... // same as above, but all instances of window.heap are replaced with just heap 
window.heap = heap; 
heap.load(APP_ID) 

所以我認爲窗口變量聲明不能很好地與React配合使用。如果任何人都可以向我解釋爲什麼以及我的解決方案如何工作,但原始腳本沒有,請幫助啓發我。