내 반응 응용 프로그램에 외부 응용 프로그램 Chameleon을 추가하려고하는데이를 위해 내 응용 프로그램에 자바 스크립트 기능 을 추가해야 합니다.
특정 상황에서만 호출되기를 원하므로 index.html
. render
내 구성 요소 의 기능에 다음과 같이 추가하려고 시도했습니다 .
render() {
return(
<div>
<head>
<script type="text/javascript">/* Chameleon - better user onboarding */!function(t,n,o){var a="chmln",c="setup identify alias track clear set show on off custom help _data".split(" ");n[a]||(n[a]={}),n[a].accountToken=o,n[a].location=n.location.href.toString();for(var e=0;e<c.length;e++)!function(){var t=n[a][c[e]+"_a"]=[];n[a][c[e]]=function(){t.push(arguments)}}();var s=t.createElement("script");s.src="https://fast.trychameleon.com/messo/"+o+"/messo.min.js",s.async=!0,t.head.appendChild(s)}(document,window,"TOKEN");
chmln.identify(USER.ID_IN_DB, { // Unique ID of each user in your database (e.g. 23443 or "590b80e5f433ea81b96c9bf6")
email: USER.EMAIL });
</script>
...
...
</head>
</div>
)
}
그러나 위의 내용은 작동하지 않는 것 같습니다. 헬멧 안에 똑같이 시도했지만 운이 없었습니다. 둘 다 오류를 표시합니다.
SyntaxError: Unexpected token
특정 구성 요소에서이 함수를로드 할 수있는 방법이 index.html
있습니까? 아니면?
당신은 반응이 무엇에 대한 것이고 어떻게 사용되는지에 대해 강한 오해를 가지고있는 것 같습니다.
1) head
페이지에는 1 개의 요소 만 있어야하며 index.html
구성 요소의 렌더링 된 출력 에는 없어야합니다 .
2) 컴포넌트가 <script>
태그를 렌더링하는 것은 반응을 사용하는 지점에 위배됩니다.
해야 할 일은 import
컴포넌트에 필요한 코드입니다.
import './path/to/file.js'
그런 다음 거기 chmln
에서 window
개체에 사용할 수 있어야 합니다.
window.chmln.identify()
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다