使用mapbox GL setStyle时,为什么图层过滤器不能为null或未定义?

时间:2017-11-21 13:16:21

标签: mapbox-gl-js

当我使用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)

1 个答案:

答案 0 :(得分:1)

我能够通过从图层对象中完全删除过滤器prop来解决此问题,从而成功清除过滤器

const { filter, ...newProps } = state.layers[i];
new_layers.push(newProps);