当我使用setStyle并且图层的过滤器为null或undefined时,会引发错误。虽然根据样式规范过滤器是可选的,并且setFilter可以采用null或undefined https://www.mapbox.com/mapbox-gl-js/api/#map#setfilter,但它确实会引发错误。
那么如何重置图层上的过滤器呢?
Error: layers[1].filter: array expected, null found
at Function.module.exports.emitErrors (mapbox-gl.js:402)
at t.setState (mapbox-gl.js:376)
at e.setStyle (mapbox-gl.js:474)
答案 0 :(得分:1)
我能够通过从图层对象中完全删除过滤器prop来解决此问题,从而成功清除过滤器
const { filter, ...newProps } = state.layers[i];
new_layers.push(newProps);