html-response-parser: замените узел DOM другим узлом DOM, содержащим дочерний внутренний текст (A-ссылка)

С использованием html-react-parser, Мне нужно вывести свою строку как JSX, но с заменой всех <a href=...> к инкапсулирующему новому элементу <LinkContainer to={href}><a>..</a></LinkContainer> который будет содержать <a>. Другими словами, я оборачиваю свои A-ссылки в тег LinkContainer.

Проблема в том, что я не знаю, как выразить внутренний текст заменяемого A-тега, который должен быть включен:

      parse(successMessage, { 
        replace: domNode => {
            if (domNode.attribs && domNode.attribs.href) {
                return <LinkContainer to={domNode.attribs.href}><a href="#">How to get the Inner Text?</a></LinkContainer>;
            }  
        }}
    );

Ничего подобного innerText или textдоступен. Ко мне приходят DOM-узлы:

  • Сам A-tag
  • Его дочерний элемент, который является внутренним текстом, отдельным узлом

1 ответ

Я нашел решение. Вы можете просто заменить A-тег и получить текст ссылки из domNode.children[0].data.

          parse(successMessage, { 
            replace: domNode => {
                if (domNode.attribs && domNode.attribs.href) {
                    return <LinkContainer to={domNode.attribs.href}><a href="#">{domNode.children[0].data}</a></LinkContainer>;
                }  
            }}
        )
Другие вопросы по тегам