Setting temporary state is one update behind with multiple events

This one was a bear to track down. I have a select box that sets a temporary state value on change. However, it was always one event behind. i.e. If you select "Option 1" the state would be null. If you changed the selection to "Option 2" it would set the state to "Option 1".

I realized it occurred when a second change event was on the select box. The order of events is irrelevant. I've attached a demo app that reproduces the error.

tempstatetest.json (12.2 KB)

This same issue occurs if using localstorage.

Hi @andy.barilla,

I can tell this one was a difficult one to track down! It took some playing around but I was able to import your app and reproduce what you've mentioned. I went ahead and created a bug report for our team. I'll continue to keep you updated on a fix for the temporary state. Thanks for bringing up this bug! This goes a long way in helping us improve our product!

I tested out the localStorage but wasn't able to reproduce the issue. Is there something different that you're doing compared to the issue with temporary state (different component, event handler, modules, etc)?

@Kenny Thanks for looking into this! I am currently struggling with the same issue and wasn't sure if that's the correct behaviour or not.

I would like to run a query after a temporary state variable has been updated (because that temporary state is an "input" for the query). Currently, tempState.setValue() looks like it runs asynchronously and updates the data too late for my use case.

Maybe the current behaviour is a good default for most cases, but having the option to wait for the temporary state update to complete would be useful (maybe similar to a Promise or like the onSuccess call back in query.trigger()).