首頁 >web前端 >js教程 >為什麼我收到'相鄰 JSX 元素必須包含在封閉標籤中?”

為什麼我收到'相鄰 JSX 元素必須包含在封閉標籤中?”

Patricia Arquette
Patricia Arquette原創
2024-11-02 18:07:29352瀏覽

Why do I get

必須包含相鄰的JSX 元素

當嘗試基於狀態變數有條件地渲染組件時,必須遵守規則相鄰的JSX元素必須包含在封閉標籤內。此要求確保了 React 元件樹的有效性。

當您使用 if 語句有條件地渲染元素而沒有正確封閉它們時,就會出現問題。例如,在您的程式碼中:

if(this.state.submitted==false) {
  // ...
}

這會導致解析錯誤「相鄰 JSX 元素必須包含在封閉標記中」。要解決此問題,您必須將條件元素包裝在合適的父標記中,例如

:
if(this.state.submitted==false) {
  return (
    <div>
      {/* Conditional content here */}
    </div>
  );
}

或者,如果您希望在沒有額外包裝層的情況下顯示片段,您可以利用React 16.2 中引入的Fragments API:

return (
  <>
    {/* Conditional content here */}
  </>
);

此語法允許您將JSX 元素分組,而無需引入額外的DOM 節點。

以上是為什麼我收到'相鄰 JSX 元素必須包含在封閉標籤中?”的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn