从 IHTMLProp 轻松检索值
Easily retrieving value from IHTMLProp
我正在使用 Fable.React
并想从 IHTMLProp list
中检索一些值。
这目前有效,但感觉有点乏味:
let selectInput (attr : IHTMLProp list) options =
let selectedValue =
attr
|> List.map (function
| :? HTMLAttr as a ->
match a with
| Value v -> Some v
| _ -> None
| _ -> None)
|> List.choose id
|> List.tryHead
有更简单的方法吗?
特别是我想简化嵌套匹配表达式,但欢迎任何提示。
为了简化查找,您可以使用List.tryPick
。
为了简化匹配,您可以使用活动模式。
代码为:
let (| IsHTMLAttr | _ |) (attr: IHTMLProp) =
match attr with
| :? HTMLAttr as a -> Some a
| _ -> None
let selectInput (attrs : IHTMLProp list) options =
let selectedValue =
attrs
|> List.tryPick (function
| IsHTMLAttr (Value v) -> Some v
| _ -> None)
我正在使用 Fable.React
并想从 IHTMLProp list
中检索一些值。
这目前有效,但感觉有点乏味:
let selectInput (attr : IHTMLProp list) options =
let selectedValue =
attr
|> List.map (function
| :? HTMLAttr as a ->
match a with
| Value v -> Some v
| _ -> None
| _ -> None)
|> List.choose id
|> List.tryHead
有更简单的方法吗?
特别是我想简化嵌套匹配表达式,但欢迎任何提示。
为了简化查找,您可以使用List.tryPick
。
为了简化匹配,您可以使用活动模式。
代码为:
let (| IsHTMLAttr | _ |) (attr: IHTMLProp) =
match attr with
| :? HTMLAttr as a -> Some a
| _ -> None
let selectInput (attrs : IHTMLProp list) options =
let selectedValue =
attrs
|> List.tryPick (function
| IsHTMLAttr (Value v) -> Some v
| _ -> None)