Имя атрибута textarea: "defaultValue" должно оставаться в верхнем регистре, но вместо этого становится символом нижнего регистра: "defaultvalue".
Я использую ключ параметра htmlparser2 для определения связанных параметров, чтобы заставить это работать, но это все равно не удалось.
defaultValue становится значением по умолчанию (символ нижнего регистра "v") даже при настройке параметров htmlparser2 (см. ниже).
используйте шаблон html с элементами узла с именами атрибутов, содержащими символы в верхнем регистре, проанализируйте их, используйте параметр htmlparse2, чтобы попытаться удалить lowerCaseAttributeNames, и посмотрите на результат ... имена атрибутов еще в нижнем регистре.
textarea(type='text' id='message' name='message'
rows="4" cols="50" defaultValue="")
(шаблон мопса доставлен клиенту реакции, затем console.log показывает, что отображаемый текст шаблона по-прежнему имеет имена атрибутов символов в верхнем регистре)
parse(this.state.content,
{ htmlparser2: {
xmlMode: true,
lowerCaseAttributeNames: false,
lowerCaseTags: false
}
} )
Спасибо за открытие этого выпуска @ jerome-diver. Можете ли вы помочь мне воспроизвести эту проблему на Repl.it , JSFiddle или CodeSandbox ?
Нет, я не могу. Но у вас есть все необходимые элементы для воспроизведения проблемы. Просто проанализируйте строку html, содержащую имя атрибутов в верхнем регистре, и вы увидите.
@remarkablemark Я тоже с этим сталкиваюсь. Вот довольно тривиальный тестовый пример: https://repl.it/repls/FriendlyYearlyPublisher#index.js. Я считаю, что это работает на Node, но я тоже испытываю это в браузере.
Я ожидаю, что type
в возвращаемом объекте будет MyCustomUppercaseComponent
, а не mycustomuppercasecomponent
. Это правильное понимание флага lowerCaseTags
?
Спасибо!
@lazerwalker Какую версию html-react-parser
вы используете? Я вижу в вашем Repl.it, что вы используете 0.10.1 .
Эта функция была доступна в версии 0.12.0 . Кроме того, это работает только на стороне сервера (Node.js) и не работает на стороне клиента (браузер).
См. Repl.it вашего рабочего примера.
ага, извините за это - я просто щелкнул ссылку Repl.it, которую вы разместили выше, и использовал все, что она мне дала. Но локально у меня не получится, так как я делаю это в браузере.
README не указывает, что эта функция не работает в браузере. Я счастлив отправить PR, чтобы обновить его, но просто хотел подтвердить: это конкретно этот флаг, который не поддерживается, или изменение каких-либо настроек htmlparser2?
@lazerwalker Да, мы благодарны за PR, чтобы явно указать, что эта функция доступна в> = 0.12.0 и работает только на сервере (Node.js), а не на клиенте (браузере).
Чтобы заставить эту функцию работать в браузере, могут потребоваться некоторые усилия, поскольку в html-dom-parser htmlparser2
доступен только на Node.js и намеренно не включен в пакет браузера из-за своего большого размера.
Для меня это тоже проблема. У кого-нибудь есть обходной путь?
Мне лично не удалось найти решение для браузера (а не для Node), но я не смотрел на это год.
Я тоже ищу решение этой проблемы, наше приложение работает в браузере ...? Собственно этот вопрос нужно открывать повторно @remarkablemark ?