Uncaught TypeError: не удается прочитать свойства неопределенного (чтение «испускать») VueQuill Vue3

Используя VueQuill в моем приложении vue3, я получаю следующую ошибку консоли при попытке показать строку html:

Мой код -

<template>
  <div class = "">
      <QuillEditor v-model:content = "data" contentType = "html" />
  </div>
</template>

<script>
import { QuillEditor } from '@vueup/vue-quill'
import '@vueup/vue-quill/dist/vue-quill.snow.css';

export default {
  name: 'HomeView',
  components: {
    QuillEditor
  },
  setup(){
    const data = "<div><p>test test test</p></div>"

    return {
      data
    }
  }
}
</script>

Эта ошибка появляется только при использовании следующей опоры

тип содержимого = "html"

Ошибка не отображается при использовании

тип содержимого = "текст"

Что я пробовал

Обертывание элемента QuillEditor с помощью -

<div v-if = "data !== undefined">
  <QuillEditor v-model:content = "data" contentType = "html" />
</div>

Чтобы убедиться, что данные смонтированы перед созданием QuillEditor, это не работает.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
254
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я думаю, что редактор анализирует html-контент и преобразует его во «внутренние узлы» Quill. И, по-видимому, в редакторе Quill нет узла для тега «div», поэтому содержимое редактора равно нулю, и его не удается инициализировать.

Решение: измените html-контент на то, что имеет смысл для редактора Quill, например <h1>This is a heading</h1> или, например, <p>test test test</p>.

Рабочие коды и ящик.

Ответ принят как подходящий

После воссоздания некоторых примеров я могу сказать, что div — это не HTML-тег, который Quill экспортирует или использует в своем HTML-формате.

Если вы напишете что-нибудь в редакторе Quill и экспортируете его HTML, вы сможете заметить, какие теги HTML он генерирует. Например, введите любой текст в редакторе и отформатируйте его, используя все параметры панели инструментов, и посмотрите на экспортируемый редактором HTML-код.

Это будет выглядеть примерно так-

<ul><li><strong style = "background-color: rgb(255, 255, 255);">Lorem <em><u>Ipsum</u></em></strong><span style = "background-color: rgb(255, 255, 255);">&nbsp;is simply dummy text of the printing and typesetting industry. </span></li></ul><ol><li><strong style = "background-color: rgb(255, 255, 255);">Lorem <em><u>Ipsum</u></em></strong><span style = "background-color: rgb(255, 255, 255);">&nbsp;is simply dummy text of the printing and typesetting industry. </span></li></ol> 

Здесь вы можете видеть, что тег div не использовался в экспортированном HTML, все теги являются форматированными тегами (полужирный, курсив, список и т. д.), и это может быть причиной, когда вы используете contentType = "html", он пытается сопоставить допустимый тег HTML и терпит неудачу.

Вот Рабочая песочница, где вы можете изучить экспортированный HTML-код в консоли. (Введите что-нибудь в редакторе, отформатируйте его, используя все параметры панели инструментов, и просмотрите HTML-код, выйдя из редактора.)

Если вы удалите тег div из своего примера и попробуете только <p>test test test</p>, это сработает, потому что p является допустимым тегом HTML в соответствии со своей структурой.

Вы можете узнать больше о форматах в документации Quill Delta.

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