Number field in a list view fails to update state when using escape key or clicking outside (solved)

Hi, I'm hitting an issue with number fields in list views that I think may be a bug. In summary if a number field in a list view has an on change event to update a state value with the entire list view data object, it only updates correcly if the user presses enter after changing the number field. If the user clicks outside the box, presses tab or escape, then the UI updates but the state fails to update, instead it uses the old value.

Screenshots to show test:
State and list view:

number field on change event to set state1 to listView1.data
Screenshot 2022-03-04 at 12.39.16

I update 111 to 999 in the first row and press escape, notice that the state doesn't update even though UI does

I then update the second row to 555, the state for the first row now update to 999 but remains 222 for the 2nd row

To check the normal behaviour and for sanity, I then try something similar on a number field outside of a list view. This time on change the self.value of the field is stored to state2

If I change the value to 888 and press escape to leave the field, the state updates as expected.

In the list view example, when the number field changes, is there a delay in listView1.data being updated and therefore stale data is stored in the state?

Solving my own problem, but leaving here in case it's useful for anyone else. Assuming the above is caused by listView data updating too slowly after a field change, I now update the state using the number field value rather than the listview data.

Screenshot 2022-03-04 at 13.29.20

If you have lots of different fields in each list row, rather than specifying each on by it's name, eg 'editableNumber4', you can get the name programatically using formDataKey instead
Screenshot 2022-03-04 at 13.39.01

For reference, there's another post about listview data being slower to updat [here](http://community.retool.com/t/listview-data-values-update-slower-than-their-field-counterparts/1751)