From de8250a23b6fc3c5970e161477268dc376261abd Mon Sep 17 00:00:00 2001 From: Bojan Zivkovic Date: Fri, 8 Dec 2017 23:45:03 -0500 Subject: [PATCH] Optimizing App.js for API v3 and v4 --- build/resources/App3.js | 61 +++++++++++++------------------- build/resources/App4.js | 77 +++++++++++++++++------------------------ package.json | 2 +- 3 files changed, 56 insertions(+), 84 deletions(-) diff --git a/build/resources/App3.js b/build/resources/App3.js index 6bd7756..2030ccf 100644 --- a/build/resources/App3.js +++ b/build/resources/App3.js @@ -1,46 +1,35 @@ import React, {Component} from 'react'; +import esriLoader from 'esri-loader'; import './App.css'; -import * as esriLoader from 'esri-loader'; -class App extends Component { +const options = { + url: `https://js.arcgis.com/3.22/` +}; + +export default class App extends Component { constructor() { super(); - if (!esriLoader.isLoaded()) { - esriLoader.bootstrap((err) => { - if (err) { - console.error(err); - } else { - this.createMap(); - } - }, { - url: 'https://js.arcgis.com/3.22/' // Here you can change API version - }); - } else { - this.createMap(); - } - - this.state = { - map: null - } - } - - createMap = () => { - esriLoader.dojoRequire([ + esriLoader.loadModules([ 'esri/map' - ], (Map) => { - let map = new Map('mapContainer', { - center: [-100, 30], - zoom: 3, - basemap: 'gray-vector' - }); - window.map = map; + ], options) + .then(([Map]) => { + let map = new Map('mapContainer', { + basemap: 'gray-vector', + center: [-100, 30], + zoom: 3 + }); - this.setState({ - map - }) - }); - }; + window.map = map; + + this.setState({ + map + }) + }) + .catch(err => { + console.error(err); + }); + } render() { return ( @@ -53,5 +42,3 @@ class App extends Component { ); } } - -export default App; \ No newline at end of file diff --git a/build/resources/App4.js b/build/resources/App4.js index 511b4e3..6754020 100644 --- a/build/resources/App4.js +++ b/build/resources/App4.js @@ -1,54 +1,41 @@ import React, {Component} from 'react'; -import * as esriLoader from 'esri-loader'; +import esriLoader from 'esri-loader'; import './App.css'; -class App extends Component { +const options = { + url: 'https://js.arcgis.com/4.5' +}; + +export default class App extends Component { constructor() { super(); - if (!esriLoader.isLoaded()) { - esriLoader.bootstrap((err) => { - if (err) { - console.error(err); - } else { - this.createMap(); - } - }, { - // url: 'https://js.arcgis.com/4.4/' // Here you can change API version - }); - } else { - this.createMap(); - } - - this.state = { - map: null, - view: null - } - } + esriLoader.loadModules([ + 'esri/Map', + 'esri/views/MapView' + ], options) + .then(([Map, MapView]) => { + let map = new Map({ + basemap: "gray-vector" + }); - createMap = () => { - esriLoader.dojoRequire([ - "esri/Map", - "esri/views/MapView" - ], (Map, MapView) => { - let map = new Map({ - basemap: "gray-vector" - }); - window.map = map; - let view = new MapView({ - map: map, - container: "mapContainer", - basemap: 'gray-vector', - center: [-100, 30], - zoom: 3 - }); + let view = new MapView({ + map: map, + container: "mapContainer", + basemap: 'gray-vector', + center: [-100, 30], + zoom: 5 + }); - this.setState({ - map, - view - }) - }); - }; + this.setState({ + map, + view + }) + }) + .catch(err => { + console.error(err); + }); + } render() { return ( @@ -56,10 +43,8 @@ class App extends Component {

Welcome to ESRI React App

-
+
); } } - -export default App; \ No newline at end of file diff --git a/package.json b/package.json index 21bfdb7..e466d5e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-esri-react-app", - "version": "0.2.2", + "version": "0.2.3", "description": "Creating ESRI applications with React included", "main": "./src/index.js", "bin": {