Ошибка при использовании unsafe HTML с lit-element - PullRequest
0 голосов
/ 10 апреля 2020

Это мой код:

import {customElement, LitElement, html, property, css} from 'lit-element';
import {unsafeHTML} from 'lit-html/directives/unsafe-html.js';

@customElement('my-component')
export class myComponent extends LitElement {
  render() {
    const markup = '<div>Some HTML to render.</div>';
    return html`
      ${unsafeHTML(markup)}
    `;
  }
}

Но когда я запускаю в браузере, я получаю такую ​​ошибку:

part => { if (!(part instanceof NodePart)) { throw new Error('unsafeHTML can only be used in text bindings'); } const previousValue = previousValues.get(part); if (previousValue !== undefined && isPrimitive(value) && value === previousValue.value && part.value === previousValue.fragment) { return; } const template = document.createElement('template'); template.innerHTML = value; // innerHTML casts to string internally const fragment = document.importNode(template.content, true); part.setValue(fragment); previousValues.set(part, { value, fragment }); }

введите описание изображения здесь

Мой код очень прост, но я все еще получил ошибку, поэтому кто-нибудь может подсказать мне, как заставить его работать.

1 Ответ

1 голос
/ 10 апреля 2020

Этот тип ошибка часто вызывается несколькими версиями lit- html, взаимодействующими в одном проекте. Распространенный сценарий - это когда вы начинаете использовать LitElement (который внутренне использует версию lit-html), а затем устанавливаете lit-html отдельно, чтобы иметь возможность использовать встроенные директивы. Это иногда может привести к дублированию, которое легко исправить, запустив

$ npm dedupe

. Также для пользователей пряжи:

$ yarn install --flat

может помочь в этом случае.

...