我要做什么?
考虑字符串“我是<tag text="somevalue"/>
示例”
我想将字符串与
因此在上面的示例中,需要值“ somevalue”并将其附加到带有元素的原始字符串中
所以输出应如下所示,
“我是<span>somevalue</span>
的例子”
到目前为止我尝试过什么?
class Parent extends React.PureComponent {
render = () => {
const content = "i am <tag text="somevalue"/> example";
const parser = new DOMParser();
const doc = parser.parseFromString(content, 'text/html');
const getTextAttrVal = (n) => {
if (n.matches && n.matches('user-mention')) {
const string_to_parse=`<span>${n.getAttribute('text')}
</span>`;
const text = ReactHtmlParser(string_to_parse);
return text;
}
return '';
};
const recursion = (n) => {
if (n && n.childNodes && n.childNodes.length) {
return getTextAttrVal(n) +
[...n.childNodes].map(recursion); //this causes the
//[object object] problem
}
return getTextAttrVal(n) || n.textContent; //this works
};
result = [...doc.body.childNodes].map(recursion);
如果我使用字符串“ i am <tag text="value"/>
”,则以上代码将起作用,因为它不会输入if循环。但是,如果我在示例中使用字符串,则无法正常工作。在递归方法中,对象数组是从getTextAttrVal()方法返回的。在这里,我再次将其与[... n.childNodes] .map(recursion)方法的结果串联在一起。
如何更改此设置,使我不获取[object object]而不是jsx。有人可以帮我解决这个问题。谢谢。