显然,Halogen 缺少 method 属性的“dialog”值。在写下这些文字时,Halogen 中的方法属性只有
get
和 post
值。
好消息是 Halogen 表示,当发生这种情况时,这不是问题,因为这些可能由用户添加。
这正是我在这里尝试做的,但是代码因错误而失败,我不知道如何解决它:
module Main where
import Prelude
import Effect (Effect)
import Halogen (PropName(..))
import Halogen as H
import Halogen.Aff as HA
import Halogen.Aff (awaitBody, runHalogenAff)
import Halogen.HTML (prop)
import Halogen.HTML as HH
import Halogen.HTML.Properties (IProp)
import Halogen.HTML.Properties as HP
import Halogen.VDom.Driver (runUI)
main :: Effect Unit
main = HA.runHalogenAff do
body <- HA.awaitBody
runUI component unit body
component :: ∀ query input output m. H.Component query input output m
component =
H.mkComponent { initialState: const 0, render, eval: H.mkEval H.defaultEval}
where
render _ = HH.div_
[ HH.dialog [HP.style "padding: 0"]
[HH.form [HP.style "padding: 1rem", method "dialog"] []]
]
where
method :: forall r i. String -> IProp (method :: String | r) i
method = prop (PropName "method")
错误:
Error found:
in module Main
at src/Main.purs:27:54 - 27:69 (line 27, column 54 - line 27, column 69)
Could not match type
String
with type
FormMethod
while matching label method
我也尝试创建一个
HH.attr (AttrName "method") "dialog"
,但似乎不起作用。