At least two options could be considered:
Option 1
Manage polygon options via React state, the following example demonstrates how to change polygon fillColor
on mouseOver
event:
const triangleCoords = [
{ lat: 25.774, lng: -80.19 },
{ lat: 18.466, lng: -66.118 },
{ lat: 32.321, lng: -64.757 },
{ lat: 25.774, lng: -80.19 }
];
function Map(props) {
const { zoom, center } = props;
const [polygonOptions, setPolygonOptions] = useState({
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FF0000",
fillOpacity: 0.35,
polygonKey: 1
});
function handleMouseOver(e) {
setPolygonOptions({fillColor: "#FFFF00"});
}
return (
<GoogleMap defaultZoom={zoom} defaultCenter={center}>
<Polygon
onMouseOver={handleMouseOver}
path={triangleCoords}
editable={true}
options={polygonOptions}
/>
</GoogleMap>
);
}
Option 2
Access native Google Maps Polygon object, the following example demonstrates how to change fillColor
on mouseOver
event via Polygon.setOptions
method:
function Map(props) {
function handleMouseOver(e) {
this.setOptions({ fillColor: "#FFFF00" });
}
const { zoom, center } = props;
return (
<GoogleMap defaultZoom={zoom} defaultCenter={center}>
<Polygon
onMouseOver={handleMouseOver}
path={triangleCoords}
key={1}
editable={true}
options={{
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FF0000",
fillOpacity: 0.35
}}
/>
</GoogleMap>
);
}