Javascript 如何合并<;脚本>;在React中添加Google地图实例

Javascript 如何合并<;脚本>;在React中添加Google地图实例,javascript,google-maps,reactjs,web,google-maps-api-3,Javascript,Google Maps,Reactjs,Web,Google Maps Api 3,比您更感谢您展示如何使用来实现这一点。可以找到他的答案。 然而,虽然这确实解决了我的问题,但我原来的问题仍然存在。假设没有创建任何react组件来消除使用的麻烦,那么我将如何使用下面的问题中所示的脚本实现Google地图。换句话说,如何使用React(ES6/ES7) 我正在我的网络应用程序中添加一个谷歌地图。我发现了这个伟大的发电机,它给了我以下代码: <!DOCTYPE html> <html> <head> <meta charset="

比您更感谢您展示如何使用来实现这一点。可以找到他的答案。

然而,虽然这确实解决了我的问题,但我原来的问题仍然存在。假设没有创建任何react组件来消除使用
的麻烦,那么我将如何使用下面的问题中所示的脚本实现Google地图。换句话说,如何使用React(ES6/ES7)

我正在我的网络应用程序中添加一个谷歌地图。我发现了这个伟大的发电机,它给了我以下代码:

 <!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Google Maps</title>
</head>
<body>
    <div id="map_canvas" style="width:500px;height:300px;"></div>

    <script src="https://maps.google.com/maps/api/js"></script>
    <script>
        window.onload = function() {
            initialize();
        };

        function initialize() {
            var myLatlng = new google.maps.LatLng(50.3419169876, 5.60793614352);

            var myOptions = {
                zoom: 16,
                center: myLatlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };

            var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

            var infowindow = new google.maps.InfoWindow({
                content: "Someplace"
            });

            var marker = new google.maps.Marker({
                position: myLatlng,
                map: map,
                title: "Someplace"
            });

            google.maps.event.addListener(marker, 'click', function() {
                infowindow.open(map,marker);
            });
        }
    </script>
</body>
</html>

谷歌地图
window.onload=函数(){
初始化();
};
函数初始化(){
var mylatng=new google.maps.LatLng(50.3419169876,5.60793614352);
变量myOptions={
缩放:16,
中心:myLatlng,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
var infowindow=new google.maps.infowindow({
内容:“某处”
});
var marker=new google.maps.marker({
职位:myLatlng,
地图:地图,
标题:“某处”
});
google.maps.event.addListener(标记'click',函数(){
信息窗口。打开(地图、标记);
});
}
因此,我将脚本粘贴到index.html文件中。谷歌地图实例应该放在联系人页面上。显然,当我在/contact上重新加载页面时,我会很快加载地图。然而,由于窗口在react中不在范围内,所以每当我使用导航栏导航时,它都不起作用

我有一个GoogleMaps.js组件,它只包含id map_canvas的div:

import React from 'react'

const GoogleMapsInstance = () => (
  <div id="map_canvas" style={{ width: '100%', height: '400px', overflow: 'hidden' }} />
)
export default GoogleMapsInstance
从“React”导入React
const GoogleMapsInstance=()=>(
)
导出默认GoogleMapsInstance
我想知道如何在这个组件中获取脚本,以便调用componentDidMount函数上的脚本或类似的东西

我也愿意接受任何其他类型的解决方案,让我快速加载(无iframe)谷歌地图:)

谢谢你的帮助

谷歌上的简单搜索;)

尝试:


演示:

这种方式并不复杂,出于您的喜好,我昨天刚刚发布了,效果不错

如果你想把这个地图元素添加到你的组件上,或者反之亦然,请告诉我

以下编辑版本(根据您的需要):

您可以按照本指南将地图显示在您的联系人页面上:

首先,安装必要的库:

npm install --save google-map-react
npm install --save prop-types
然后,您可以复制以下内容:

import React, { Component } from 'react';
import GoogleMapReact from 'google-map-react';

const AnyReactComponent = ({ text }) => <div>{text}</div>;

class MyClass extends Component {
  constructor(props){
    super(props);

  }

  render() {
    return (
      <GoogleMapReact
        defaultCenter={this.props.center}
        defaultZoom={this.props.zoom}
        style={{width: '500px', height: '300px'}}
      >
        <AnyReactComponent
          lat={50.3419169876}
          lng={5.60793614352}
          text={'MY SHOP'}
        />
      </GoogleMapReact>
    );
  }
}
MyClass.defaultProps = {
  center: {lat: 50.34, lng: 5.61},
  zoom: 16
};

export default MyClass;
import React,{Component}来自'React';
从“谷歌地图反应”导入谷歌地图反应;
const AnyReactComponent=({text})=>{text};
类MyClass扩展组件{
建造师(道具){
超级(道具);
}
render(){
返回(
);
}
}
MyClass.defaultProps={
中心:{lat:50.34,lng:5.61},
缩放:16
};
导出默认MyClass;

请随意编辑LatLng值和/或“我的店铺”文本,我相信您也可以使用一些自定义PNG图像而不是文本元素来显示表示您的店铺的首选地图pin

我发现了这一点,但它似乎不必要地复杂,我在实现它时遇到了困难。显示您的react主渲染代码(组件)那么我可以帮你;)谢谢现在可以用了。“标记”可以定制,这是对的,考虑到我不仅仅想要文本,因为它看起来很平淡。很高兴你做到了,朋友^^!