Skip to content

AsyncDirectives prevent mobx observables retriggering update #164

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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