React 中预期相应的 JSX 结束标记错误
Expected corresponding JSX closing tag error in React
当我们忘记关闭 JSX 代码中的标签时,会出现 React.js 错误“Expected corresponding JSX closing tag”。
要解决该错误,请使用自动关闭标签,例如<input />
并确保您的 JSX 代码中打开和关闭标签的顺序是正确的。
以下是错误发生方式的示例:
应用程序.js
export default function App() { // ⛔️ Expected corresponding JSX closing tag for <input>. return ( <div> <h1>Hello world</h1> <input id="icon_prefix" type="text" class="validate"> </div> ) }
示例中的问题是我们忘记关闭input
元素的标签。
使用自闭标签
我们可以使用自闭标签来解决错误。
应用程序.js
export default function App() { return ( <div> <h1>Hello world</h1> <input id="icon_prefix" type="text" class="validate" /> </div> ); }
我们为输入元素使用了一个自闭合标签。因此,我们没有使用<input>
导致错误的 , 而是使用了<input />
.
该错误也通常由img
元素引起。确保始终将您的img
标签关闭为<img src="..." />
.
<br />
和标签也是如此<hr />
。
我们总是必须关闭标签或使用自关闭标签,否则 React 希望我们将 prop 传递
children
给组件。打开和关闭标签的顺序不正确
当我们打开和关闭标签的顺序不正确时,也会导致错误。
应用程序.js
export default function App() { // ⛔️ Expected corresponding JSX closing tag for <input>. return ( <div> <h1>Hello world <span>Hello 123</h1></span> </div> ); }
问题是h1
标签打开,然后span
元素开始,然后
h1
标签在元素之前关闭span
。
要解决这种情况下的错误,我们必须span
先关闭标签。
应用程序.js
export default function App() { return ( <div> <h1> Hello world <span>Hello 123</span> </h1> </div> ); }
总是使用关闭标签或自关闭标签,因为如果 React 只找到一个开始标签,那么它期望我们将一个children
prop 传递给元素然后关闭它。