Задание свойства в виде `type: Array` не позволяет правильно проанализировать значение свойства строки - PullRequest
0 голосов
/ 02 января 2019

Обновление: Подана ошибка в https://github.com/Polymer/lit-element/issues/411

У меня возникли проблемы с реализацией стандартного и пользовательского конвертера для свойств, указанных в руководстве.В текущей версии (0.6.5) написано, что вы можете присвоить типу Array свойству, и оно будет автоматически проанализировано как JSON из строкового значения атрибута, но это не таккак описано в примере кода.

Вот иллюстрация проблемы.В консоли он должен сообщить массив с тремя элементами, но он возвращает массив из одного элемента, строку, которая содержит значение атрибута.Результат метода рендеринга также показывает только один элемент <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, но это тоже не вызывается.Что я делаю не так?

1 Ответ

0 голосов
/ 02 января 2019

Я посмотрел.В файле 0.6.5 update-element.js нет даже преобразования для массива.И, глядя на пакет npm 0.6.5, он также не упоминает массив.

Но главная ветвь отображает тип массива, и он упоминается в файле readme.Он должен работать для вас, если вы потянете его и будете использовать его напрямую.

...