Skip to content

Commit de8250a

Browse files
author
Bojan Zivkovic
committed
Optimizing App.js for API v3 and v4
1 parent 0dbf792 commit de8250a

File tree

3 files changed

+56
-84
lines changed

3 files changed

+56
-84
lines changed

build/resources/App3.js

Lines changed: 24 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,35 @@
11
import React, {Component} from 'react';
2+
import esriLoader from 'esri-loader';
23
import './App.css';
3-
import * as esriLoader from 'esri-loader';
44

5-
class App extends Component {
5+
const options = {
6+
url: `https://js.arcgis.com/3.22/`
7+
};
8+
9+
export default class App extends Component {
610
constructor() {
711
super();
812

9-
if (!esriLoader.isLoaded()) {
10-
esriLoader.bootstrap((err) => {
11-
if (err) {
12-
console.error(err);
13-
} else {
14-
this.createMap();
15-
}
16-
}, {
17-
url: 'https://js.arcgis.com/3.22/' // Here you can change API version
18-
});
19-
} else {
20-
this.createMap();
21-
}
22-
23-
this.state = {
24-
map: null
25-
}
26-
}
27-
28-
createMap = () => {
29-
esriLoader.dojoRequire([
13+
esriLoader.loadModules([
3014
'esri/map'
31-
], (Map) => {
32-
let map = new Map('mapContainer', {
33-
center: [-100, 30],
34-
zoom: 3,
35-
basemap: 'gray-vector'
36-
});
37-
window.map = map;
15+
], options)
16+
.then(([Map]) => {
17+
let map = new Map('mapContainer', {
18+
basemap: 'gray-vector',
19+
center: [-100, 30],
20+
zoom: 3
21+
});
3822

39-
this.setState({
40-
map
41-
})
42-
});
43-
};
23+
window.map = map;
24+
25+
this.setState({
26+
map
27+
})
28+
})
29+
.catch(err => {
30+
console.error(err);
31+
});
32+
}
4433

4534
render() {
4635
return (
@@ -53,5 +42,3 @@ class App extends Component {
5342
);
5443
}
5544
}
56-
57-
export default App;

build/resources/App4.js

Lines changed: 31 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,50 @@
11
import React, {Component} from 'react';
2-
import * as esriLoader from 'esri-loader';
2+
import esriLoader from 'esri-loader';
33
import './App.css';
44

5-
class App extends Component {
5+
const options = {
6+
url: 'https://js.arcgis.com/4.5'
7+
};
8+
9+
export default class App extends Component {
610
constructor() {
711
super();
812

9-
if (!esriLoader.isLoaded()) {
10-
esriLoader.bootstrap((err) => {
11-
if (err) {
12-
console.error(err);
13-
} else {
14-
this.createMap();
15-
}
16-
}, {
17-
// url: 'https://js.arcgis.com/4.4/' // Here you can change API version
18-
});
19-
} else {
20-
this.createMap();
21-
}
22-
23-
this.state = {
24-
map: null,
25-
view: null
26-
}
27-
}
13+
esriLoader.loadModules([
14+
'esri/Map',
15+
'esri/views/MapView'
16+
], options)
17+
.then(([Map, MapView]) => {
18+
let map = new Map({
19+
basemap: "gray-vector"
20+
});
2821

29-
createMap = () => {
30-
esriLoader.dojoRequire([
31-
"esri/Map",
32-
"esri/views/MapView"
33-
], (Map, MapView) => {
34-
let map = new Map({
35-
basemap: "gray-vector"
36-
});
37-
window.map = map;
38-
let view = new MapView({
39-
map: map,
40-
container: "mapContainer",
41-
basemap: 'gray-vector',
42-
center: [-100, 30],
43-
zoom: 3
44-
});
22+
let view = new MapView({
23+
map: map,
24+
container: "mapContainer",
25+
basemap: 'gray-vector',
26+
center: [-100, 30],
27+
zoom: 5
28+
});
4529

46-
this.setState({
47-
map,
48-
view
49-
})
50-
});
51-
};
30+
this.setState({
31+
map,
32+
view
33+
})
34+
})
35+
.catch(err => {
36+
console.error(err);
37+
});
38+
}
5239

5340
render() {
5441
return (
5542
<div className="App">
5643
<div className="App-header">
5744
<h1>Welcome to ESRI React App</h1>
5845
</div>
59-
<div id="mapContainer" />
46+
<div id="mapContainer"/>
6047
</div>
6148
);
6249
}
6350
}
64-
65-
export default App;

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "create-esri-react-app",
3-
"version": "0.2.2",
3+
"version": "0.2.3",
44
"description": "Creating ESRI applications with React included",
55
"main": "./src/index.js",
66
"bin": {

0 commit comments

Comments
 (0)