Ask questionsCheckbox "checked" value un-toggled before event handler is triggered

If you have the following code:

   [ Events.stopPropagationOn  "click" (Json.Decode.succeed ( NoOp, True )) ]
   [ Html.input
      [ Events.type_ "checkbox"
      , Events.onCheck Toggle
      , Events.checked model.isChecked

the checkbox will not toggle.

The interesting part is that if you remove the checked model.on, it works again. The theory is that NoOp gets triggered (synchronously), re-renders the DOM, overwriting the newly checked value, before the Toggle event handler is triggered. Because Toggle uses the checked value for the boolean it sends with the message, it sends the wrong boolean, since the checked value was flipped back by the NoOp render.

A possible work around just to ignored the checked value from onCheck and just toggle your model directly.

Events.onCheck (\_ -> Toggle (not model.isChecked))

See ellie example.


Answer questions bitterjug

See also


Related questions

No questions were found.
Github User Rank List