[英]Can I use an "in" expression nested inside "case" in Mapbox?
我正在嘗試動態更改 Mapbox 地圖上某些點的icon-size
,並且遇到了一個我似乎無法解決的問題。 圖標大小應根據給定數據點的“鍵”是否在選定鍵列表中而改變。 這是我迄今為止的代碼:
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
]
);
這似乎應該做我想做的,但是當我嘗試運行它時,我得到Error: "layers.stl-crimes.layout.icon-size[1][0]: Unknown expression "in". If you wanted a literal array, use ["literal", [...]]."
我對此感到非常困惑,因為我認為我可以在case
表達式中使用in
表達式。 我試過在數組中添加一個literal
表達式,以及在get
表達式周圍添加一個to-string
表達式,但都無濟於事。 任何幫助將不勝感激,謝謝!
對於可能遇到此問題的任何人來說,這是一個版本問題。 直到 Mapbox GL JS >1.6.0 才存在in
運算符; 我使用的是較早的版本。 可以在此處找到有關運算符版本控制的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.