es6-promise - 使用 lit-html 从 Promise 渲染数组,直到
问题描述
我正在尝试使用 lit-html 及其直到语法呈现一些 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 ...
当页面加载时,我正在遍历数组并且可以检查这些值。此外,我在调试器中看到了 Loading...,但 html`` 永远不会在 until() 函数中呈现内容。
解决方案
第一个论点until
是不解决任何内容。更新函数以返回值并使用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>`)
推荐阅读
- php - 如果通过 jQuery sortable() 移动到“今天列表”,则更改数据库中项目的日期
- python - Telegram Payment 2.0 API:如何使用 answerShippingQuery 和 answerPreCheckoutQuery 解决这个问题?
- java - 是否有相当于 JDA 的 bulkDelete?
- tensorflow - 面部表情 val_accuracy 没有提高
- flutter - 有没有办法修复列表小部件错误
- node.js - 如何在 Windows 上使用 npm 脚本设置 NODE_ENV?
- javascript - array.splice() 删除条目的内容,但不删除条目本身
- python - 如何解决这个问题(来自 csv 的 imp 之后的错误)?
- android - 即使在导航中为目标片段设置参数值后,也无法将值从 FragmentOne 传递到 FragmentTwo
- jdbc - JDBC PreparedStatement.executeQuery() 的详细信息