Elm 一个div中的自定义事件和onMouseEnter
我试图将两个事件附加到一个div中,但遇到了一些困难。当附加其中一个事件而不是两个事件时,代码将编译。我将解释什么正在起作用,以及当我尝试附加另一个事件时它是如何中断的。它崩溃的原因很直观,但我不知道如何解决这个问题 现在我有:Elm 一个div中的自定义事件和onMouseEnter,elm,Elm,我试图将两个事件附加到一个div中,但遇到了一些困难。当附加其中一个事件而不是两个事件时,代码将编译。我将解释什么正在起作用,以及当我尝试附加另一个事件时它是如何中断的。它崩溃的原因很直观,但我不知道如何解决这个问题 现在我有: dragHereOverlay : { item : String, color : String } -> Html Msg dragHereOverlay item = App.map (\d -> GetPositionDragHere d i
dragHereOverlay : { item : String, color : String } -> Html Msg
dragHereOverlay item =
App.map (\d -> GetPositionDragHere d item) <|
div
[ on "mouseenter" decodeRectangle
, attribute "class" "drag-here"
, sharedStyles
]
[]
decodeRectangle : Decode.Decoder Rectangle
decodeRectangle =
let
rectangle =
DOM.target
:> DOM.boundingClientRect
in
rectangle
第一个元素具有以下类型:
Attribute { height : Float, left : Float, top : Float, width : Float }
但第二点是:
Attribute Msg
提示:所有元素都应该是相同类型的值,以便
在列表中迭代,不会遇到意外值
谢谢你的帮助
好的,错误消息告诉您问题所在。你需要改变
on "mouseenter" decodeRectangle
到
其中需要定义tagger并具有此类型签名
tagger: Rectangle -> Msg
你可以发布编译错误完成!现在我必须写更多的东西才能发布这个:D
on "mouseenter" decodeRectangle
on "mouseenter" (Json.Decode.map tagger decodeRectangle)
tagger: Rectangle -> Msg