Skip to content

AsyncDirectives prevent mobx observables retriggering update #164

@benjamind

Description

@benjamind

Expected Behaviour

Using async directives should 'just work' with the rendering component updating whenever an observable inside of the async directive is updated. The async directive of course should do what it always does.

Actual Behaviour

Mobx observables are not tracked within the callbacks of renders invoked by async directives like when and until.

Couple of possible approaches to fixing/workaround this:

  • Wrap all async directive render functions with helper functions to track the invocations and re-render the hosting component
  • Never use mobx observables directly in async directive render functions and instead always pass down the observable to a MobxLitElement that itself handles the re-render.
  • Extend Lits ReactiveElement with new hooks that are driven by AsyncDirective calls to setValue within their render tree. This is a much bigger change at the core of the library and would likely need updates to the AsyncDirective API.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions