Skip to content

Commit e1d9f88

Browse files
Merge pull request #162 from yulinscottkang/v1/canvas
fix: double canvas in react 18 strict mode
2 parents 3972727 + 37e8b46 commit e1d9f88

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-azure-maps",
3-
"version": "1.0.0-beta.2",
3+
"version": "1.0.0-beta.3",
44
"description": "React Wrapper for Azure Maps",
55
"keywords": [
66
"react",

src/components/AzureMap/AzureMap.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import React, { memo, useContext, useEffect, useState } from 'react'
2-
import atlas from 'azure-maps-control'
1+
import React, { memo, useContext, useEffect, useState, useRef } from 'react'
2+
import atlas, { Map } from 'azure-maps-control'
33
import { IAzureMap, IAzureMapsContextProps, MapType } from '../../types'
44
import { AzureMapsContext } from '../../contexts/AzureMapContext'
55
import { Guid } from 'guid-typescript'
@@ -33,6 +33,7 @@ const AzureMap = memo(
3333
isMapReady
3434
} = useContext<IAzureMapsContextProps>(AzureMapsContext)
3535
const [mapId] = useState(providedMapId || Guid.create().toString())
36+
const mapRefSource = useRef<Map | null>(null)
3637
useEffect(() => {
3738
if (mapRef) {
3839
mapRef.setTraffic(trafficOptions)
@@ -97,7 +98,10 @@ const AzureMap = memo(
9798
})
9899

99100
useEffect(() => {
100-
setMapRef(new atlas.Map(mapId, options))
101+
if (mapRefSource.current === null) {
102+
mapRefSource.current = new atlas.Map(mapId, options)
103+
}
104+
setMapRef(mapRefSource.current)
101105
return () => {
102106
removeMapRef()
103107
}

0 commit comments

Comments
 (0)