fix undefined value when remount keyed input element with spread props

pull/7699/head
Nico Beierle 4 years ago
parent 791533e7a5
commit eb5e6bb7ae

@ -832,7 +832,9 @@ export default class ElementWrapper extends Wrapper {
const type = this.node.get_static_attribute_value('type');
if (type === null || type === '' || type === 'text' || type === 'email' || type === 'password') {
block.chunks.mount.push(b`
${this.var}.value = ${data}.value;
if ('value' in ${data}) {
${this.var}.value = ${data}.value;
}
`);
block.chunks.update.push(b`
if ('value' in ${data}) {

@ -0,0 +1,11 @@
export default {
test({ assert, component, target }) {
const [input1, input2] = target.querySelectorAll('input');
assert.equal(input1.value, 'value1');
assert.equal(input2.value, 'value2');
component.items = component.items.reverse();
assert.equal(input1.value, 'value1');
assert.equal(input2.value, 'value2');
}
};

@ -0,0 +1,7 @@
<script>
export let items = ['value1', 'value2'];
</script>
{#each items as item (item)}
<input value={item} {...{}} />
{/each}
Loading…
Cancel
Save