Использование функции html вне компонента, возвращающего [объект Object] LitElement

У меня с этим болит голова, если кто знает, как решить, будет круто. Я использую LitElement для создания компонента таблицы, разработчик, который хочет его использовать, может добавить customHTML для рендеринга другого ввода. Для этого он / она может использовать свойство «заголовки», например:

      [{
  label: 'Created at',
  customHTML: (value, isEditable) => html`<custom-element .value="${value} .isEditable="${valueisEditable}"></custom-element>`
}]

Использование внутреннего компонента:

      <td>${header.customHTML()}</td>

Проблема, с которой я столкнулся, заключается в том, что когда я пытаюсь использовать этот customHTML внутри своего табличного компонента, он возвращает [object Object]. У вас есть какое-нибудь объяснение этому? Это можно решить?

Спасибо!

3 ответа

Это потому, что вы используете много версий lit-element .

Введите хромированную консоль window.litElementVersions и вы увидите, какие версии освещенного элемента вы используете.

Если вы перепутаете html тег из разных импортов из разных версий, вы получите [object Object].

Решение

Здесь нет никакого волшебства или чего-то особенного. Снова установить все пакеты

      rm -rf node_modules yarn.lock package-lock.json
npm i
# or
yarn install

Не так много кода, чтобы действительно понять проблему, но попробуйте использовать JSON.stringify(customHTML).

в виде строки будет более гибко печататься в виде текста.

[object Object] является представлением по умолчанию объекта, преобразованного в строку.

Пользовательский элемент html - это объект, на который вы ссылаетесь внутри <td> тег, который, вероятно, пытается преобразовать его в строку.

Другие вопросы по тегам