将 属性 指定为 `type: Array` 似乎无法正确解析字符串 属性 值

Specifying a property as `type: Array` doesn't seem to parse the string property value correctly

更新:https://github.com/Polymer/lit-element/issues/411

提交了错误

根据指南中的信息,我无法实现属性的默认和自定义转换器。在当前版本 (0.6.5) 中,它说您可以将类型 Array 分配给 属性 并且它将自动从属性的字符串值中解析为 JSON ,但是代码示例中描述的情况似乎并非如此。

这是问题的说明。在控制台中,它应该报告一个包含三个元素的数组,但它 returns 一个元素的数组,即包含属性值的字符串。 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.6.5 updating-element.js 文件甚至没有数组转换。查看 0.6.5 的 npm 包,它也没有提到数组。

但是master分支确实映射了数组类型,在readme中有提到。拉出来直接用应该有用