Tracked down and reported against the virtual DOM but the short summary for anyone else seeing routing problems — though possibly not the ones that started this thread — is that DOM updates have trouble if you have a lazy node that resolves to an Html.map node. Don't do that. At least until there's a fix. If you want to be lazy, stick a div in or avoid the map by pushing the tagger function further down.
Mark > On Dec 14, 2016, at 10:23 PM, Mark Hamburg <[email protected]> wrote: > > I'm looking at a bug tonight that looks very much like a tagger got dropped > in processing messages coming up the HTML tree. This is with various bits of > Html.Keyed paranoia. I'm thinking more and more strongly that there are bugs > in the tagging logic in the virtual DOM. I guess I know what I'm hunting for > over Christmas... > > Mark > >> On Wed, Dec 14, 2016 at 7:17 AM, Mark Hamburg <[email protected]> wrote: >> I was dealing with a case where a textfield from a login screen would blur >> after the screen had been removed and replaced by the main content. >> (Literally. I was looking at the new content.) The blur message would get >> tagged as headed for the content area which would then lead to a crash when >> the message wasn't understood. >> >> My fix was to put an Html.Keyed at the top of the tree to reflect what state >> the app was in. (And then in a bit of paranoia, I looked for other, similar >> places further down and added Html.Keyed protection there as well.) >> >> Mark >> >>> On Dec 13, 2016, at 10:24 PM, Simon <[email protected]> wrote: >>> >>> Thanks, I suspected that keyed would be part of the solution. >>> Any sense on whether I need to apply it only to the components being left >>> (easy) with no need on those that the code is switching to (much leasy in >>> my case)? >>> >>> >>>> On Wednesday, 14 December 2016 03:55:29 UTC+1, Mark Hamburg wrote: >>>> I just dug into what I think is essentially the same bug. My guess was >>>> that textfields were getting removed from the DOM and then firing their >>>> blur events up through the event mapping chain — which had been updated to >>>> match the new view tree structure. It's on my list to try to build a small >>>> example of the bug after my team gets through its next milestone. >>>> >>>> In the meantime, I worked around this by making fairly aggressive use of >>>> Html.Keyed to prevent pieces of the DOM from being reused. >>>> >>>> Mark >>>> >>>>> On Dec 13, 2016, at 9:56 AM, Simon <[email protected]> wrote: >>>>> >>>>> Sorry about using the C word! >>>>> >>>>> I had an error several months ago (0.16/0.17) where the wrong data would >>>>> be attached to message, causing all sorts of weirdness. It happened after >>>>> a successful logon and as the App tried to redirect to the main view. I >>>>> have a vague feeling that in the end all I needed to do was update >>>>> elm-lang/virtual-dom. >>>>> >>>>> Anyway, it has come back. It has something to do with when the browser >>>>> puts in login information for you. I can create the error by deleting the >>>>> auto-input and inserting my password and clicking enter to submit. >>>>> >>>>> Then what I see in my logs is this message >>>>> >>>>> `User.SwitchGroup: Blur "password"` >>>>> >>>>> Whereas SwitchGroup has type `String -> Msg` and `Blur "password"` are >>>>> artefacts of the elm-form library that was used in the Login component >>>>> and is not used in the User one. >>>>> >>>>> Does this remind anyone of something they have experienced, solved, and >>>>> remembered how they solved it? >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google Groups >>>>> "Elm Discuss" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send an >>>>> email to [email protected]. >>>>> For more options, visit https://groups.google.com/d/optout. >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Elm Discuss" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
