I'm having an object property like so
pageSizeValues: {
type: Object
}
that is being instantiated like this
this.pageSizeValues = {10: 10, 25: 25, 50: 50};
Based on it I'd like to build a dropdown with 3 entries, that is by iterating over the pageSizeValues
<vaadin-select @change="${event => this.setLimit(event.target.value)}" value="${this.limit}" placeholder="Page Size" style="width: 80px">
<template>
<vaadin-list-box>
${Object.entries(this.pageSizeValues).forEach(([key, val]) =>
{ console.log(key + " " + val);
html`
<vaadin-item value=${key}>${val}</vaadin-item>
`
})}
</vaadin-list-box>
</template>
</vaadin-select>
While the console.log properly display the key-value pairs in the UI I'm not getting the items rendered at all.
I managed to render the items properly when the I was iterating over an array instead of an Object so I'm not sure where the issue might be.
I'm having an object property like so
pageSizeValues: {
type: Object
}
that is being instantiated like this
this.pageSizeValues = {10: 10, 25: 25, 50: 50};
Based on it I'd like to build a dropdown with 3 entries, that is by iterating over the pageSizeValues
<vaadin-select @change="${event => this.setLimit(event.target.value)}" value="${this.limit}" placeholder="Page Size" style="width: 80px">
<template>
<vaadin-list-box>
${Object.entries(this.pageSizeValues).forEach(([key, val]) =>
{ console.log(key + " " + val);
html`
<vaadin-item value=${key}>${val}</vaadin-item>
`
})}
</vaadin-list-box>
</template>
</vaadin-select>
While the console.log properly display the key-value pairs in the UI I'm not getting the items rendered at all.
I managed to render the items properly when the I was iterating over an array instead of an Object so I'm not sure where the issue might be.
Share Improve this question asked Nov 4, 2021 at 8:44 SergiuSergiu 2,6267 gold badges36 silver badges60 bronze badges1 Answer
Reset to default 9You need to return the html value or it is just created and discarded. The easiest way is to use map
instead of forEach
${Object.entries(this.pageSizeValues).map(([key, val]) =>
{ console.log(key + " " + val);
return html`
<vaadin-item value=${key}>${val}</vaadin-item>
`
})}