最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決React報(bào)錯(cuò)React.Children.only expected to receive single React element child

 更新時(shí)間:2023年01月05日 14:53:07   作者:chuck  
這篇文章主要為大家介紹了React報(bào)錯(cuò)React.Children.only expected to receive single React element child分析解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

總覽

當(dāng)我們把多個(gè)子元素傳遞給一個(gè)只期望有一個(gè)React子元素的組件時(shí),會(huì)產(chǎn)生"React.Children.only expected to receive single React element child"錯(cuò)誤。為了解決該錯(cuò)誤,將所有元素包裝在一個(gè)React片段或一個(gè)封閉div中。

這里有個(gè)示例來(lái)展示錯(cuò)誤是如何發(fā)生的。

// App.js
import React from 'react';
function Button(props) {
  // ??? expects single child element
  return React.Children.only(props.children);
}
export default function App() {
  return (
    <Button>
      <button
        onClick={() => {
          console.log('Button clicked');
        }}
      >
        Click
      </button>
      <button
        onClick={() => {
          console.log('Button clicked');
        }}
      >
        Click
      </button>
    </Button>
  );
}

Button元素期望傳遞單個(gè)子元素,但我們?cè)谕?jí)下傳遞了2個(gè)子元素。

React片段

我們可以使用React片段來(lái)解決該錯(cuò)誤。

import React from 'react';
function Button(props) {
  // ??? expects single child element
  return React.Children.only(props.children);
}
export default function App() {
  return (
    <Button>
      <>
        <button
          onClick={() => {
            console.log('Button clicked');
          }}
        >
          Click
        </button>
        <button
          onClick={() => {
            console.log('Button clicked');
          }}
        >
          Click
        </button>
      </>
    </Button>
  );
}

當(dāng)我們需要對(duì)子節(jié)點(diǎn)列表進(jìn)行分組,而不需要向DOM添加額外的節(jié)點(diǎn)時(shí),就會(huì)使用Fragments。

你可能還會(huì)看到使用了更詳細(xì)的片段語(yǔ)法。

import React from 'react';
function Button(props) {
  // ??? expects single child element
  return React.Children.only(props.children);
}
export default function App() {
  return (
    <Button>
      <React.Fragment>
        <button
          onClick={() => {
            console.log('Button clicked');
          }}
        >
          Click
        </button>
        <button
          onClick={() => {
            console.log('Button clicked');
          }}
        >
          Click
        </button>
      </React.Fragment>
    </Button>
  );
}

上面的兩個(gè)例子達(dá)到了相同的結(jié)果--它們對(duì)子元素列表進(jìn)行分組,而沒(méi)有向DOM中添加額外的節(jié)點(diǎn)。

現(xiàn)在大多數(shù)代碼編輯器都支持更簡(jiǎn)明的語(yǔ)法,因此更常用。

DOM元素

另一個(gè)解決方案是將子元素包裹在另一個(gè)DOM元素中,例如一個(gè)div

import React from 'react';
function Button(props) {
  // ??? expects single child element
  return React.Children.only(props.children);
}
export default function App() {
  return (
    <Button>
      <div>
        <button
          onClick={() => {
            console.log('Button clicked');
          }}
        >
          Click
        </button>
        <button
          onClick={() => {
            console.log('Button clicked');
          }}
        >
          Click
        </button>
      </div>
    </Button>
  );
}

這樣就解決了錯(cuò)誤,因?yàn)槲覀儸F(xiàn)在向Button組件傳遞了單一的子元素。

這種方法只有在添加一個(gè)額外的div而不會(huì)破壞你的布局時(shí)才有效,否則就使用一個(gè)片段,因?yàn)槠尾粫?huì)向DOM添加任何額外的標(biāo)記。

這是很有必要的,因?yàn)?code>Button組件使用React.Children.only函數(shù)來(lái)驗(yàn)證children屬性是否只有一個(gè)子元素,并返回它。否則該方法會(huì)拋出一個(gè)錯(cuò)誤。

React.Children.only方法經(jīng)常被用于第三方庫(kù),以確保API的消費(fèi)者在使用該組件時(shí)只提供一個(gè)子元素。

以上就是解決React報(bào)錯(cuò)React.Children.only expected to receive single React element child的詳細(xì)內(nèi)容,更多關(guān)于React報(bào)錯(cuò)single element child的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • React頁(yè)面刷新數(shù)據(jù)不丟失的五種方案

    React頁(yè)面刷新數(shù)據(jù)不丟失的五種方案

    前端開(kāi)發(fā)中,相信大家都遇到過(guò)這樣的痛點(diǎn):頁(yè)面一刷新,辛辛苦苦填的表單數(shù)據(jù)沒(méi)了,精心選擇的篩選條件重置了,今天我們就來(lái)深入探討React中數(shù)據(jù)持久化的5大核心方案,從簡(jiǎn)單到復(fù)雜,幫你徹底解決這個(gè)難題,需要的朋友可以參考下
    2025-12-12
  • React 的調(diào)和算法Diffing 算法策略詳解

    React 的調(diào)和算法Diffing 算法策略詳解

    React的調(diào)和算法,主要發(fā)生在render階段,調(diào)和算法并不是一個(gè)特定的算法函數(shù),而是指在調(diào)和過(guò)程中,為提高構(gòu)建workInProcess樹(shù)的性能,以及Dom樹(shù)更新的性能,而采用的一種策略,又稱diffing算法
    2021-12-12
  • 詳解React中Props的淺對(duì)比

    詳解React中Props的淺對(duì)比

    這篇文章主要介紹了React中Props的淺對(duì)比的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用React,感興趣的朋友可以了解下
    2021-05-05
  • react使用axios進(jìn)行api網(wǎng)絡(luò)請(qǐng)求的封裝方法詳解

    react使用axios進(jìn)行api網(wǎng)絡(luò)請(qǐng)求的封裝方法詳解

    這篇文章主要為大家詳細(xì)介紹了react使用axios進(jìn)行api網(wǎng)絡(luò)請(qǐng)求的封裝方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • React Native提供自動(dòng)完成的下拉菜單的方法示例

    React Native提供自動(dòng)完成的下拉菜單的方法示例

    這篇文章主要為大家介紹了React Native提供自動(dòng)完成的下拉菜單的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • React+EggJs實(shí)現(xiàn)斷點(diǎn)續(xù)傳的示例代碼

    React+EggJs實(shí)現(xiàn)斷點(diǎn)續(xù)傳的示例代碼

    這篇文章主要介紹了React+EggJs實(shí)現(xiàn)斷點(diǎn)續(xù)傳的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • React搭配TypeScript使用教程及實(shí)戰(zhàn)案例

    React搭配TypeScript使用教程及實(shí)戰(zhàn)案例

    本文主要介紹了React搭配TypeScript使用教程及實(shí)戰(zhàn)案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-02-02
  • React通過(guò)useContext特性實(shí)現(xiàn)組件數(shù)據(jù)傳遞

    React通過(guò)useContext特性實(shí)現(xiàn)組件數(shù)據(jù)傳遞

    本文主要介紹了React如何通過(guò)useContext特性實(shí)現(xiàn)組件數(shù)據(jù)傳遞,文中有相關(guān)的代碼示例供大家參考,對(duì)我們學(xué)習(xí)React有一定的幫助,需要的朋友可以參考下
    2023-06-06
  • 詳解開(kāi)發(fā)react應(yīng)用最好用的腳手架 create-react-app

    詳解開(kāi)發(fā)react應(yīng)用最好用的腳手架 create-react-app

    本篇文章主要介紹了詳解開(kāi)發(fā)react應(yīng)用最好用的腳手架 create-react-app,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 解決React報(bào)錯(cuò)Cannot assign to 'current' because it is a read-only property

    解決React報(bào)錯(cuò)Cannot assign to 'current'

    這篇文章主要為大家介紹了React報(bào)錯(cuò)Cannot assign to 'current' because it is a read-only property的解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12

最新評(píng)論

富裕县| 红安县| 明溪县| 朝阳区| 鹿邑县| 牟定县| 建湖县| 永泰县| 景洪市| 旬邑县| 宜君县| 两当县| 乌拉特前旗| 博爱县| 格尔木市| 曲阜市| 郧西县| 新建县| 樟树市| 赣榆县| 六枝特区| 东港市| 兴安盟| 齐齐哈尔市| 阜城县| 延长县| 丰都县| 连云港市| 寿阳县| 都江堰市| 丰县| 双柏县| 图木舒克市| 佛学| 资中县| 利津县| 凌源市| 台中县| 修文县| 汉阴县| 永宁县|