更新:在https://github.com/Polymer/lit-element/issues/411
处提交了错误根据指南中的信息,我无法为属性实现默认和自定义转换器。在当前版本(0.6.5)中,它表示您可以将类型Array
分配给属性,并且该属性会自动从属性的字符串值中解析为JSON,但这似乎不是如代码示例中所述。
这是问题的例证。在控制台中,它应报告一个包含三个元素的数组,但是它返回一个包含一个元素值的字符串的数组,该字符串包含属性值。 render方法的结果还显示仅包含单个字符串的一个<p>
元素。
<script type="module">
import { LitElement, html } from 'https://unpkg.com/@polymer/lit-element@0.6.5/lit-element.js?module';
class Histogram extends LitElement {
static get properties() {
return {
values: { type: Array }
};
}
constructor() {
super();
this.values = [];
}
render() {
console.log(Array.isArray(this.values), this.values);
return html`
<div>
The elements:
${this.values.map(item => html`<p>item: ${item}</p>`)}
</div>
`;
}
}
customElements.define('x-histogram', Histogram);
</script>
<x-histogram values="[1,2,3]"/>
我也尝试通过提供converter
来修改示例,但这似乎也没有被调用。我在做什么错了?
答案 0 :(得分:1)
我看了看。 0.6.5 updates-element.js文件甚至没有转换为数组。看着0.6.5的npm包,也没有提到数组。
但是master分支确实映射了数组类型,并且它在自述文件中已有提及。如果您将其拉出并直接使用,它将为您工作。