iron-selector
iron-selector copied to clipboard
selectedItem momentarily becomes undefined when selection changes.
Description
selectedItem property momentarily becomes undefined when the selection changes. This fires computed bindings.
Expected outcome
selectedItem directly changes from 'before' to 'after', or doesn't fire computed bindings in between.
Actual outcome
The computed binding is fired with selectedItem === undefined.
Live Demo
http://jsbin.com/zidelanake/1/edit?html,js,console,output
Steps to reproduce
- Load the live demo
- Click the "Next" button in the Output pane
- Observe the Console.
Actual: "getSelectedItemId result: one" "getSelectedItemId result: undefined" "getSelectedItemId result: two"
Expected: "getSelectedItemId result: one" "getSelectedItemId result: two"
Browsers Affected
Chrome, though I imagine it affects others also.
#120 is a potential fix for this; it still needs some clean up though.
Any progress on getting this fixed? When a selectedItem changes not getting the previousValue on the change handler is very frustrating.
I've traced the issue to https://github.com/PolymerElements/iron-selector/blob/master/iron-selection.html#L75-L84 - selectedItem is removed from the selection array and then this gets called https://github.com/PolymerElements/iron-selector/blob/master/iron-selectable.html#L365-L367 - which is then empty cause the selectedItem was removed in the previous function.