输入Reactjs的预期相应JSX结束标记

Saj*_*kar 45 javascript reactjs react-jsx reactjs-flux

在Reactjs中创建具有输入字段的组件时会发生错误 Error: Parse Error: Line 47: Expected corresponding JSX closing tag for input at http://localhost/chat-react/src/script.js:47:20 </div>

var Main = React.createClass({
    render: function() {
        return (
            <div className="card-action">
                <i class="mdi-action-account-circle prefix"></i>
                <input id="icon_prefix" type="text" class="validate">
            </div>
        );
    }
});
Run Code Online (Sandbox Code Playgroud)

Cro*_*rob 83

您需要/>在末尾用a关闭input元素.

<input id="icon_prefix" type="text" class="validate" />
Run Code Online (Sandbox Code Playgroud)

  • @CristianTraìna 重要的是要记住 JSX 不是 HTML。JSX 是它自己的东西。在幕后,所有内容都转换为“React.createElement”,并且取决于每个元素的关闭来了解事物的嵌套方式。 (6认同)
  • 我可以问为什么吗?,(我是这个主题的新手) (3认同)
  • 我有一个“&lt;br&gt;”,这导致了问题(它需要一个“&lt;br/&gt;”)。这很奇怪,因为 HTML5 规范建议不要使用前导斜杠作为自结束标签 (3认同)
  • @pedro如果标签为空(没有子元素),这是关闭元素的快捷方式,而无需创建匹配的关闭元素。所以代替:`&lt;div&gt;&lt;/div&gt;`。你可以只做`&lt;div /&gt;`。请参阅此处了解更多信息:https://reactjs.org/docs/introducing-jsx.html#specifying-children-with-jsx (2认同)

Yuv*_*til 12

当我们不关闭 html 标签时会发生这种情况。

确保所有 html 标签都已关闭。

就我而言,它是<br>标签。应该是<br />

尝试暂时删除一段代码,直到找到缺少哪个 html 标记结束。


Dek*_*eke 8

如果您的组件顺序错误,也会发生此错误。

例子:这个错误:

 <ComponentA> 
    <ComponentB> 

    </ComponentA> 
 </ComponentB> 
Run Code Online (Sandbox Code Playgroud)

正确方法:

  <ComponentA> 
    <ComponentB>

    </ComponentB>  
  </ComponentA> 
Run Code Online (Sandbox Code Playgroud)