Javascript 我可以使用嵌套在Mapbox中的“case”中的“in”表达式吗?

Javascript 我可以使用嵌套在Mapbox中的“case”中的“in”表达式吗?,javascript,mapbox,mapbox-gl-js,Javascript,Mapbox,Mapbox Gl Js,我正在尝试动态更改Mapbox地图上某些点的图标大小,并且正在运行一个似乎无法修复的问题。图标大小应根据给定数据点的关键点是否在选定关键点列表中而变化。以下是迄今为止我掌握的代码: mapRef .getMap() // Using a React reference, getting the map itself .setLayoutProperty(layer, "icon-size", [ "case", [ "in"

我正在尝试动态更改Mapbox地图上某些点的图标大小,并且正在运行一个似乎无法修复的问题。图标大小应根据给定数据点的关键点是否在选定关键点列表中而变化。以下是迄今为止我掌握的代码:

mapRef
    .getMap() // Using a React reference, getting the map itself
    .setLayoutProperty(layer, "icon-size", [
        "case",
        [
            "in",
            ["get", key],
            selectedData // Mapping an immutable list to the keys
                .toArray()
                .map(data => data[key as keyof CommonData])
        ],
        1.5,
        1
    ]
);
这似乎应该做我想做的,但当我尝试运行它时,我得到了 错误:layers.stl.layout.icon size[1][0]:中的表达式未知。如果需要文字数组,请使用[literal,[…]


我对此感到非常困惑,因为我认为我可以在case表达式中使用in表达式。我尝试向数组中添加一个文字表达式,以及在get表达式周围添加一个to字符串表达式,但都没有效果。任何帮助都将不胜感激,谢谢

对于任何可能遇到这种情况的人来说,这是一个版本控制问题。直到Mapbox GL JS>1.6.0,in操作符才存在;我在上一个版本。可以找到有关运算符版本控制的更多信息