反应:不能作为孩子出现。见评论> td> TR

时间:2017-01-18 10:09:43

标签: reactjs react-jsx

那么为什么反应抱怨我不能把'tr'作为'td'的孩子呢?

              <tr>
                <td colSpan={2}>
                  <tr>
                    <td>
                      <Some picture>
                    </td>
                    <td>
                      <some content>
                    </td>
                  </tr>
                  <tr>
                    <td colSpan={2}>
                      <p>Paragraph stuff</p>
                    </td>
                  </tr>
                </td>
              </tr>

也许我必须放另一张桌子或什么?

1 个答案:

答案 0 :(得分:10)

是的,你需要这个标记:

<table>
    <tbody>
        <tr>
            <td colspan={2}>
                <table>
                    <tbody>
                        <tr>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td colspan={2}>
                                <p>Paragraph stuff</p>
                            </td>
                        </tr>
                    </tbody>
                </table>
            </td>
        </tr>
    </tbody>
</table>

<tr>中嵌套<td>无效的标记。使用其他table进行布局。

根据https://github.com/facebook/react/issues/5652,您需要将表格内容包装在tbody中:

  

浏览器需要<tbody>标记。如果它不在您的代码中,那么   浏览器会自动插入它。这将首先工作正常   渲染,但是当表更新时,DOM树就是   与React期望的不同。这可能会给出奇怪的错误,   因此React警告您插入<tbody>。这是真的   有用的警告。

谢谢@Stefan Dragnev