Почему опасноSetInner HTML не работает в React Gatsby? - PullRequest
0 голосов
/ 21 июня 2020

Я отчаянно пытаюсь запустить эти два простых javascript-сценария в React Gatsby. Даже после нескольких дней исследований я все еще не могу понять.

Одна из многих попыток, которые я пробовал, - это использовать dangerousSetInner HTML. Я понял, что не работает. Чтобы проверить это, я добавил console.log () в начало каждого скрипта. Консоль не выводила никаких журналов.

import React from "react"

export default class Home extends React.Component {
  render() {
    return (
      <div style={{ color: `purple` }}>
        <div id="map" style={{ height: '2000px',width: '2000px'}}></div>
        <script
        dangerouslySetInnerHTML={{
          __html: `
            console.log('kakaoapi');
            window.kakao=window.kakao||{},window.kakao.maps=window.kakao.maps||{},window.daum&&window.daum.maps?window.kakao.maps=window.daum.maps:(window.daum=window.daum||{},window.daum.maps=window.kakao.maps),function(){function a(){if(E.length){t(S[E.shift()],a).start()}else e()}function t(a,t){var e=document.createElement("script");return e.charset="utf-8",e.onload=t,e.onreadystatechange=function(){/loaded|complete/.test(this.readyState)&&t()},{start:function(){e.src=a||"",
            document.getElementsByTagName("head")[0].appendChild(e),e=null}}}function e(){for(;c[0];)c.shift()();o.readyState=2}var o=kakao.maps=kakao.maps||{};if(void 0===o.readyState)o.onloadcallbacks=[],o.readyState=0;else if(2===o.readyState)return;o.VERSION={ROADMAP:"1912uow",ROADMAP_SUFFIX:"",HYBRID:"1912uow",SR:"3.00",ROADVIEW:"7.00",ROADVIEW_FLASH:"200402",BICYCLE:"6.00",USE_DISTRICT:"1912uow",
            SKYVIEW_VERSION:"160114",SKYVIEW_HD_VERSION:"160107"},o.RESOURCE_PATH={ROADVIEW_AJAX:"//t1.daumcdn.net/roadviewjscore/core/css3d/200204/standard/1580795088957/roadview.js"};for(var n,r="https:"==location.protocol?"https:":"http:",s="",i=document.getElementsByTagName("script"),d=i.length;n=i[--d];)if(/\/(beta-)?dapi\.kakao\.com\/v2\/maps\/sdk\.js\b/.test(n.src)){s=n.src;break}i=null;var c=o.onloadcallbacks,E=["v3"],I="",S={v3:r+"//t1.daumcdn.net/mapjsapi/js/main/4.2.0/kakao.js",services:r+"//s1.daumcdn.net/svc/attach/U03/cssjs/mapapi/libs/1.0.1/1515130215283/services.js",drawing:r+"//t1.daumcdn.net/mapjsapi/js/libs/drawing/1.2.5/drawing.js",
            clusterer:r+"//s1.daumcdn.net/svc/attach/U03/cssjs/mapapi/libs/1.0.6/1460434272434/clusterer.js"},_=function(a){var t={};return a.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(a,e,o){t[e]=o}),t}(s);I=_.appkey,I&&(o.apikey=I),o.version="4.2.0";var R=_.libraries;         
            `
          }}
        />
        <script
        dangerouslySetInnerHTML={{
          __html: `
            console.log('map');
            {
              var mapContainer = document.getElementById('map'), 
                mapOption = {
                  center: new kakao.maps.LatLng(37.56591, 126.97894), 
                  level: 4, 
                  mapTypeId : kakao.maps.MapTypeId.ROADMAP 
                };
          
              
              var map = new kakao.maps.Map(mapContainer, mapOption);
          
            }
            `
          }}
        />
      </div>
    )}
}

Как мне заставить работать эти два скрипта опасноSetInner HTML? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...