这个问题是javascript的后续问题:如何在弹出警报中显示脚本错误?在哪里解释了如何使用以下方法捕获常规javascript错误:
<script type="text/javascript">
window.onerror = function(msg, url, linenumber) {
alert('Error message: '+msg+'\nURL: '+url+'\nLine Number: '+linenumber);
return true;
}
</script>
Run Code Online (Sandbox Code Playgroud)
我试了一下,发现像这样的dojo erros:
TypeError: this.canvas is undefined dojo.js (Row 446)
Run Code Online (Sandbox Code Playgroud)
没有使用这种方法报告,这引出了我的问题:
如何使用(尤其是dojo错误)报告所有 javascript错误window.onerror?
我正在使用 Deck.gl GeoJsonLayer 在地图上显示区域。通过一次活动,我能够使这些区域成为可选择的。我正在努力解决的问题是在单击功能选择后更改功能的颜色。
这是渲染层函数(改编自此处)
_renderLayers(props) {
const { geofeats } = props;
return [
new GeoJsonLayer({
id: 'geojson',
data: geofeats,
opacity: 0.8,
stroked: true,
filled: true,
extruded: true,
wireframe: true,
getElevation: f => 10000,
getFillColor: f =>
{
if(f.properties.selected)
{
return [200, 200, 100];
} else return [200, 100, 150];
},
getLineColor: [255, 255, 255],
pickable: true,
onHover: this._onHover,
onClick: this._onClick
})
];
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我通过 setState() 更新要素集合中要素的选择状态时,即使数据中表示了状态更改,渲染也不会更新。
这就是我中继“geofeats”对象的方式:
render() {
const {features} = this.state;
const {mapStyle = …Run Code Online (Sandbox Code Playgroud)