我是Giraffe的新手,很难显示整数。我的模特是
type Person =
{
FirstName : string
LastName : string
Age : int
}
我的看法是:
let index2 (model : Person) =
[
partial()
p [] [
encodedText model.FirstName
br []
encodedText model.LastName
br []
int model.Age
]
] |> layout
返回的错误消息是“列表中的所有元素必须具有相同的类型。那么如何显示年龄?
答案 0 :(得分:0)
我对长颈鹿(而不是寓言)不太熟悉,所以我不知道该如何安装和设置以重现它。
尽管如此,从p [] [ ... ]
看,很明显该函数需要一个列表作为第二个参数,因此那里的所有元素应该是同一类型。
让我们看看里面。根据{{3}},encodedText
返回Text
,在XmlNode
DU中就是这种情况:
type XmlNode =
| ParentNode of XmlElement * XmlNode list
| VoidElement of XmlElement
| Text of string
因此,这将设置整个列表的类型XmlNode
。
br
函数定义为let br = voidTag "br"
,其中voidTag
函数返回VoidElement
,这是XmlNode
DU中的另一种情况,所以很好。
所以我不知道您想用int model.Age
说什么,int
实际上是F#中的GiraffeViewEngine.fs,用于将对象转换为整数。无论如何,它不会返回任何类型XmlNode
的东西。而是尝试
p [] [
encodedText model.FirstName
br []
encodedText model.LastName
br []
encodedText (string model.Age)
]
因此,您将ToString
的年龄,它将变成Text
的{{1}}情况,并且代码应编译。