如何使用javascript返回对象值或做出反应?

时间:2019-08-30 09:46:53

标签: javascript reactjs

我想从递归方法返回一个对象。我该怎么办?

我要做什么? 考虑字符串“我是<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。有人可以帮我解决这个问题。谢谢。

0 个答案:

没有答案