使用 lit-html 直到从 Promise 渲染数组
Rendering Array from a Promise using lit-html's until
我正在尝试使用 lit-html 及其 until 语法渲染一些 HTML。我必须承认,承诺让我感到沮丧,但我是一名后端开发人员,所以这归结为我缺乏知识。如有任何帮助,我们将不胜感激。
我的代码
... removed for brevity ...
async getCenters() {
try {
return await this.centerManager.allCenters;
}
catch (error) {
return error;
}
}
createView() {
return html`
<style>
h2 {
color: var(--ptsi-gold);
font-family: 'Helvetica Neue Medium';
font-size:1.4em;
}
p {
font-family: 'Helvetica Neue Roman';
font-size:1em;
}
.wrapper {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.tile {
background: var(--ptsi-gray);
padding: 25px;
margin: 25px 0px 25px 0px;
}
</style>
<div class="wrapper">
<div class="tile">
<h2>This is a Hard Typed Title</h2>
<p>This is a Hard Typed Body.</p>
</div>
</div>
${until(this.getCenters().then((data) => {
data.forEach(element => {
html`<div class="wrapper">
<div class="tile">
<h2>${element.program_code}</h2>
<p>${element.program_name}</p>
</div>
</div>
`
})
}), html`<span>Loading...</span>`)
}`
}
}
... removed for brevity ...
当页面加载时,我循环遍历数组并且可以检查值。此外,我在调试器中看到正在加载...,但 html`` 从不在 until() 函数中呈现内容。
until
的第一个参数没有解析任何内容。将函数更新为 return 值并使用 map
而不是 forEach
.
until(this.getCenters().then((data) => {
return data.map(element => {
return html`<div class="wrapper">
<div class="tile">
<h2>${element.program_code}</h2>
<p>${element.program_name}</p>
</div>
</div>`
})
}), html`<span>Loading...</span>`)
我正在尝试使用 lit-html 及其 until 语法渲染一些 HTML。我必须承认,承诺让我感到沮丧,但我是一名后端开发人员,所以这归结为我缺乏知识。如有任何帮助,我们将不胜感激。
我的代码
... removed for brevity ...
async getCenters() {
try {
return await this.centerManager.allCenters;
}
catch (error) {
return error;
}
}
createView() {
return html`
<style>
h2 {
color: var(--ptsi-gold);
font-family: 'Helvetica Neue Medium';
font-size:1.4em;
}
p {
font-family: 'Helvetica Neue Roman';
font-size:1em;
}
.wrapper {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.tile {
background: var(--ptsi-gray);
padding: 25px;
margin: 25px 0px 25px 0px;
}
</style>
<div class="wrapper">
<div class="tile">
<h2>This is a Hard Typed Title</h2>
<p>This is a Hard Typed Body.</p>
</div>
</div>
${until(this.getCenters().then((data) => {
data.forEach(element => {
html`<div class="wrapper">
<div class="tile">
<h2>${element.program_code}</h2>
<p>${element.program_name}</p>
</div>
</div>
`
})
}), html`<span>Loading...</span>`)
}`
}
}
... removed for brevity ...
当页面加载时,我循环遍历数组并且可以检查值。此外,我在调试器中看到正在加载...,但 html`` 从不在 until() 函数中呈现内容。
until
的第一个参数没有解析任何内容。将函数更新为 return 值并使用 map
而不是 forEach
.
until(this.getCenters().then((data) => {
return data.map(element => {
return html`<div class="wrapper">
<div class="tile">
<h2>${element.program_code}</h2>
<p>${element.program_name}</p>
</div>
</div>`
})
}), html`<span>Loading...</span>`)