在 Purescript-Halogen 中添加缺少的“方法”属性

问题描述 投票:0回答:1

显然,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"
,但似乎不起作用。

html purescript halogen
1个回答
0
投票

实际上,

HH.attr (AttrName "method") "dialog"
似乎确实是声明此类属性的方法。由于其他一些错误,它可能对我不起作用。

我还发送了 PR 来实现缺失的属性

© www.soinside.com 2019 - 2024. All rights reserved.