使用默认的PopupTemplate显示点击查询的内容,点击后报错:
Invalid language tag: RangeError: Invalid language tag: at new NumberFormat (<anonymous>) at o (webpack-internal:///./node_modules/@arcgis/core/intl/number.js:14:273) at c (webpack-internal:///./node_modules/@arcgis/core/intl/number.js:14:716) at f (webpack-internal:///./node_modules/@arcgis/core/intl/substitute.js:14:1386) at u (webpack-internal:///./node_modules/@arcgis/core/intl/substitute.js:14:504) at eval (webpack-internal:///./node_modules/@arcgis/core/intl/substitute.js:14:214) at eval (webpack-internal:///./node_modules/@arcgis/core/core/string.js:15:191) at [Symbol.replace] (<anonymous>) at String.replaceAll (<anonymous>) at r (webpack-internal:///./node_modules/@arcgis/core/core/string.js:15:78)
尝试AI解决,乱搞一通,越搞越乱。后面问ChatGPT,原因如下:
这个报错本质上不是"查询"本身的问题,而是 ArcGIS JS 在做字符串格式化(number/intl substitute)时,拿到了一个非法的语言标签(locale)
解决方法:
方案一:
javascript
esriConfig.locale = "zh-CN"; // 简体中文
方案二:
ArcGIS JS 会自动读取html文件lang属性,如果该属性为空字符,会报错。改为正确的
html
<html lang="zh">