I updated my app to 3.12 and am getting the following error:
Uncaught TypeError: Cannot read property 'toString' of undefined
It is being triggered by the following line:
init.js:899 function(c,a,d){c=k.getObject(a,!1,g);d&&(c=k.getObject(d,!1,b).call(b,c,a));return e(c,a).toString()}
Any ideas? It was working fine in 3.11. Thanks
Without seeing a code example that shows the problem its hard to say what is causing your app to fail after migrating to 3.12. Do you have a test case that shows the problem?
The code snippet you supplied is from dojo/string.substitute
. Can you supply the entire stack trace when this error occured?
It is hard to send a code sample since this error occurs onload. Here is the stack trace from the error as well as the code for which is being called out (coords.js)
require([
"dojo/dom",
"dojo/on",
"dijit/Menu",
"dijit/MenuItem",
"dijit/MenuSeparator",
"dijit/layout/ContentPane",
"dojo/number",
"esri/geometry/Point",
"esri/geometry/webMercatorUtils",
"dojo/domReady!"
], function(dom, on, Menu, MenuItem, MenuSeparator, ContentPane, number, Point, webMercatorUtils) {
var currentLocation;
//Right Click Menu
var coordMenu = new Menu({
id: "menu",
targetNodeIds: ["map"],
onOpen: function(box) {
currentLocation = getMapPointFromMenuPosition(box);
var coords = webMercatorUtils.webMercatorToGeographic(currentLocation);
var latitude = number.format(coords.y, {places:6, type: "decimal"});
var longitude = number.format(coords.x, {places:6, type: "decimal"});
dom.byId("coordsDisplay").innerHTML = "<div id=\"coordsSelect\">" + latitude + ", " + longitude + "</div>";
}
});
coordMenu.addChild(new ContentPane({
content:"<div id=\"coordsDisplay\"></div>"
}));
coordMenu.addChild(new MenuItem({
label: "Close",
iconClass: "dijitIconDelete"
}));
coordMenu.startup();
function getMapPointFromMenuPosition(box) {
var x = box.x, y = box.y;
switch( box.corner ) {
case "TR":
x += box.w;
break;
case "BL":
y += box.h;
break;
case "BR":
x += box.w;
y += box.h;
break;
}
var screenPoint = new Point(x - map.position.x, y - map.position.y);
return map.toMap(screenPoint);
}
});
Mostly likely a timing issue.
Does your app still run properly?
Yeah I figured its a timing issue when the app is parsed. It does not run when updated to 3.12, still troubleshooting.