当前位置: 首页 > 面试题库 >

未捕获的错误:始终违反:findComponentRoot(…,…$ 110):无法找到元素。这可能意味着DOM被意外地突变了

呼延庆
2023-03-14
问题内容

我在React中的嵌套循环做错了什么?我已经在Google中搜索了信息,但没有找到合适的信息。您能帮我找到我理解的错误吗?

从图中可以看出,我有一个变量中的数据。而且效果很好。但是,当我添加的不是这个值时<tr>,会出现错误!

    var TableBalls80 = React.createClass({
        render:function(){
            var rows = this.props.rows;
            var columnId = 0, trKey = 0, divKey = 0, td1stKey = 0;
            var td2ndKey = 100;
            return(
                    <table className='table table-bordered bg-success'>
                                <thead>
                                <tr className='danger'>
                                    {rows[0].row.map(function (element){
                                        columnId++;
                                        return (
                                        <th colSpan="2" key={columnId}>{columnId}</th>);
                                    })}
                                </tr>
                                </thead>
                                <tbody>
                                    {rows.map(function (rowElement){
                                        return (<tr key={trKey++}>
                                        {rowElement.row.map(function(ball){
                                            console.log('trKey:'+trKey+' td1stKey'+td1stKey+' ball.value:'+ball.value+' td2ndKey:'+td2ndKey+' ball.count:'+ball.count);
                                            return(<div key={divKey++}>
                                                <td className='info' key={td1stKey++}>{ball.value}</td><td key={td2ndKey++}>{ball.count}</td>
                                            </div>);
                                        })}
                                        </tr>);
                                    })}
                                </tbody>
                            </table>);
        }
    });

错误(取决于从另一个项目中添加的项目<tr>):

未捕获的错误:不断违反:findComponentRoot(…,.0.1.1.0.2.0.0.1。$ 0. $ 9. $
109):>无法找到元素。这可能意味着DOM被意外地突变(例如,通过>浏览器进行了突变),通常是由于在使用表时忘记了n......。


问题答案:

所以问题是您正在创建一个虚拟的DOM结构,如下所示:

<tbody>
   <tr>
      <div>
         <td>...</td>
         <td>...</td>
      </div>
   </tr>
</tbody>

由于<div/>不是有效<tr>的浏览器子级,因此实际上会创建表示此内容的DOM:

<div> </div>
<table>
<tbody>
   <tr>
      <td>...</td>
      <td>...</td>
   </tr>
</tbody>
</table>

小提琴

react进行更新时,它正在查看<tr>并想知道<div>去哪里了。相反,它找到一个,<td>因此引发错误。



 类似资料:
  • 我正在尝试使用React创建一个简单的网站,但由于某些原因,它只显示一个空白页面。 显示在控制台日志上的错误是未捕获的语法错误:意外令牌 非常感谢。 HTML: 主JS: Navbar: 身体

  • 我想创建一个

  • 我正在尝试开始在ReactJS中创建一个站点。然而,当我试图将我的JS放在一个单独的文件中时,我开始遇到这样的错误:“uncaughtSyntaxerror:uncontractedtoken” 我尝试添加添加到JS文件的顶部,但它没有修复任何问题。下面是HTML和JS文件。有没有关于出了什么问题的想法? HTML JS 编辑:我意识到我需要将添加到包含着陆器代码的脚本标记中。然而,在添加这个并重

  • 我正在尝试用Typescript和ASP.NET内核设置Angular2。以下是package.json: 和tsconfig.json 和SystemJs.Config.js 和app.component.ts: 帮我想出解决办法。

  • 当我在chrome中运行我的页面时,我得到了这个错误“uncaughtsyntaxerrorunexpectedtokenu”。在firefox中,我得到了“JSON.parse:意外字符”。我从一个php文件返回json数据,返回的json字符串是有效的。我和你核对过了http://jsonlint.com/.任何帮助都将不胜感激。。。谢谢 下面是返回的JSON字符串