Describe the bug
The LDProvider returned by asyncWithLDProvider keeps using the initial flags on mount even though the flags are updated.
To reproduce
- Call
asyncWithLDProvider and it gets initial flags for example {}
- Mount the
LDProvider and call identify to update the flag to something like {flag1: { value: true}}
- The
ldClient keeps the latest flags {flag1: { value: true}} on memory. But the LDProvider closure keeps the initial flags {} 4. When we re-mount the LDProvider for some reason, it uses the initial flags for the initial value of the context.
- Call the
identify again to get the latest flags. The {flag1: { value: true}} is fetched, but the ldClient says "The flags are the same as the current one, so I don't emit the change event".
- And the provider keeps the
{} flags as its context.
Expected behavior
LDProvider should use the latest flags, which are the same as the ldClient keeps.
Additional context
I will send a pull request to explain the issue :)
Describe the bug
The LDProvider returned by
asyncWithLDProviderkeeps using the initial flags on mount even though the flags are updated.To reproduce
asyncWithLDProviderand it gets initial flags for example{}LDProviderand callidentifyto update the flag to something like{flag1: { value: true}}ldClientkeeps the latest flags{flag1: { value: true}}on memory. But theLDProviderclosure keeps the initial flags{}4. When we re-mount theLDProviderfor some reason, it uses the initial flags for the initial value of the context.identifyagain to get the latest flags. The{flag1: { value: true}}is fetched, but theldClientsays "The flags are the same as the current one, so I don't emit the change event".{}flags as its context.Expected behavior
LDProvidershould use the latest flags, which are the same as theldClientkeeps.Additional context
I will send a pull request to explain the issue :)