Показать целое число в представлении
Я новичок в 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
Возвращаемое сообщение об ошибке: "Все элементы списка должны быть одного типа. Так как мне отобразить возраст?
1 ответ
Я не совсем знаком с Жирафом (скорее Fable), поэтому я не знаю, что установить и настроить для его воспроизведения.
Тем не менее, глядя на p [] [ ... ]
Ясно, что функция требует список в качестве второго параметра и, следовательно, все элементы должны быть одного типа.
Давайте посмотрим внутрь. Согласно GiraffeViewEngine.fs, 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
ДУ, так это нормально.
И поэтому я не знаю, что вы хотели сказать int model.Age
, а также int
на самом деле оператор в F# для преобразования объекта в целое число. В любом случае, он не возвращает ничего типа XmlNode
, Вместо этого попробуйте
p [] [
encodedText model.FirstName
br []
encodedText model.LastName
br []
encodedText (string model.Age)
]
Тем самым вы будете ToString
возраст, это превратится в Text
в случае если XmlNode
и код должен скомпилироваться.