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>;
}
}}
)