精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

新手React開發人員容易做錯的5件事

開發 前端
這篇文章主要介紹React開發人員請勿執行的操作以及如何解決的方法,這部分內容是針對React的新手開發人員提供的。

請勿執行的操作以及如何解決的方法,這部分內容是針對React的新手開發人員提供的。

1. 忘記大寫React組件

考慮一下這段代碼,它創建一個簡單的div,其中包含父組件的標題。里面有一個子組件,其中包含帶有一些文本的div。

  1. class childComponent extends React.Component { 
  2.   render() { 
  3.     return ( 
  4.       <div className='childDiv'> 
  5.         <p>Child Component</p> 
  6.       </div> 
  7.     ); 
  8.   } 
  9.  
  10. class ParentComponent extends React.Component { 
  11.   render() { 
  12.     return ( 
  13.       <div className='parentDiv'> 
  14.         <h1 className='parentHeader'>Parent Component</h1> 
  15.         <childComponent /> 
  16.       </div> 
  17.     ); 
  18.   } 
  19.  
  20. export default ParentComponent; 

您認為代碼運行時會出現什么?

childComponent 未渲染。它去哪兒了?代碼編譯成功,終端也沒有錯誤。

再次查看子組件的代碼。注意組件的名稱,你注意到什么不同了嗎?

在瀏覽器中打開控制臺,瀏覽器控制臺警告的大小寫不正確

事實證明,React將小寫組件視為DOM標記。如果你是React的新手,你可能已經錯過了React文檔中的這個小細節。

如果不了解這一點,初學者常常會陷入這樣的困惑:即他們的代碼編譯沒有任何錯誤,到底哪里出了問題?

解決方法很簡單,大寫您的組件。

2. 錯誤地調用收到的props

要訪問由父組件傳入的prop,子組件必須確保它們調用了正確的prop名稱。

還可以使用另一個變量名將Props傳遞給子組件。考慮以下代碼片段:

  1. class ChildComponent extends React.Component { 
  2.   render() { 
  3.     const { randomString } = this.props; 
  4.  
  5.     return ( 
  6.       <div className='childDiv'> 
  7.         <p>{randomString}</p> 
  8.       </div> 
  9.     ); 
  10.   } 
  11.  
  12. class ParentComponent extends React.Component { 
  13.   render() { 
  14.     const randomString = 'lorem ipsum'
  15.      
  16.     return ( 
  17.       <div className='parentDiv'> 
  18.         <h1 className='parentHeader'>Parent Component</h1> 
  19.         <ChildComponent mainText={randomString} /> 
  20.       </div> 
  21.     ); 
  22.   } 

盡管此代碼可以編譯并運行無誤,但 ChildComponent內不會渲染任何文本。

  1. <ChildComponent mainText={randomString} /> 

仔細看看這一行代碼,在 ParentComponent 中聲明的變量 randomString 作為名為 mainText 的prop傳遞給 ChildComponent。

然而,ChildComponent 試圖從它收到的prop中訪問 randomString。由于它僅接收 mainText 作為prop,因此將導致未定義的值分配給在 ChildComponent 中聲明的 randomString。結果,其

標記內未呈現任何內容。

注意哪些prop被傳遞到您的組件中,并相應地訪問它們。這將在調試期間為您節省一些不必要的麻煩。

3. 傳遞不正確的Props類型

如果所接收的prop不是預期的類型,那么依賴于這些接收prop的組件可能會有不同的行為。

  1. class ChildComponent extends React.Component { 
  2.   render() { 
  3.     const { showIntro, showBody } = this.props; 
  4.  
  5.     return ( 
  6.       <div className='childDiv'> 
  7.         {showIntro && <p>Hello!</p>
  8.         {showBody && <p>Spot the mistake!</p>
  9.       </div> 
  10.     ); 
  11.   } 

考慮這個有兩個prop的 ChildComponent:showIntro 和 showBody。它顯示“你好!和“發現錯誤!”只有當showIntro 和 showBody 分別設置為 true 時才會這樣。

ChildComponent 希望將兩個布爾值作為prop傳遞。如果在父組件中執行類似的操作,會發生什么情況?

  1. <ChildComponent showIntro='false' showBody='false' /> 
  2. <ChildComponent showIntro={'false'} showBody={'false'} /> 
  3. <ChildComponent showIntro={false} showBody={false} /> 

在prop中使用了不同的引號和大括號。但是,它們的行為將不同。看看這個:

前兩個 ChildComponent 都渲染了兩個<p>標記,而最后一個 ChildComponent 沒有渲染。

作為prop傳遞的 'false' 和 {'false'} 會導致無意中為 showIntro 和 showBody 分配了一個值為 false 的字符串,而不是布爾值 false。

對于前兩個 ChildComponent,將 showIntro 和 showBody 都計算為 true。

這是由于 && 運算符的隱式強制類型轉換。當 && 運算符檢查 showIntro 或 showBody(均為字符串)時,兩個字符串都將強制為 true。

最后一個 ChildComponent 接收到布爾值 false,因此它沒有正確渲染任何內容。

  1. console.log(`showIntro type: ${typeof showIntro}`); 
  2. console.log(`showIntro evaluated to: ${showIntro && true}`); 
  3. console.log(`showBody type: ${typeof showBody}`); 
  4. console.log(`showBody evaluated to: ${showBody && true}`); 

為了確認這一點,我們運行 console.log() 來檢查每個 ChildComponent 中prop的運行結果。

正如這里所演示的,初學者在將prop傳遞給其他組件時能夠區分使用引號和花括號之間的區別是非常重要的。

您可以使用引號來傳遞字符串文字。

  1. <MyComponent data='Hello World!'/> // passing in a String 

花括號用于傳遞JavaScript表達式。

  1. <MyComponent data={2468} /> // passing in a Number 
  2. <MyComponent data={true} /> // passing in a Boolean 

以下是Reac文檔中的一些注意事項:

將JavaScript表達式嵌入屬性中時,請勿在大括號周圍加上引號。您應該使用引號(用于字符串值)或大括號(用于表達式),但不要在同一屬性中都使用引號。

4. 在render()內部調用setState()

下圖無限循環錯誤消息

盡管您的組件中沒有 componentWillUpdate() 或 componentWillUpdate(),您仍可能遇到此錯誤。當您在 render() 函數中調用 setState() 時也會發生此錯誤。

為什么會這樣?每次調用 setState() 時,React將通過調用 render() 重新渲染。您的 render() 函數內部是什么?setState()。你看到結果了嗎?一個無限循環。

只需將 setState() 調用移到 render() 函數之外即可。

如果在組件掛載后必須初始化狀態(也許是從API端點提取數據),請在 componentDidMoun() 中進行。

如果可以在組件掛載之前初始化狀態,也可以使用構造函數來完成。

5. setState()的異步性

在調試時,通常使用 console.log() 打印值。但是,當代碼異步運行時,這不能很好地工作。

  1. handleCounterIncrement = () => { 
  2.   const { counter } = this.state; 
  3.   console.log(`Before update: ${counter}`); 
  4.   this.setState({ counter: counter + 1 }); 
  5.   console.log(`After update: ${counter}`); 
  6. }; 

你以前試過這樣做嗎?壞消息——setState() 調用是異步的。不能保證給定的代碼將按順序執行。它可能導致如下輸出:

在執行 setState() 之前執行了兩個 console.log() 調用。因此,它兩次打印前一個狀態的值。

如果希望在調用 setState() 之前和之后檢查狀態的值,請在 setState() 中將回調作為第二個參數傳遞。

  1. handleCounterIncrement = () => { 
  2.   const { counter } = this.state; 
  3.   console.log(`before update: ${counter}`); 
  4.   this.setState({ counter: counter + 1 }, () => { 
  5.     console.log(`after update: ${this.state.counter}`); 
  6.   }); 
  7. }; 

回調將在 setState() 完成后執行,從而為 console.log() 提供同步行為。

 

責任編輯:趙寧寧 來源: 前端外文精選
相關推薦

2013-01-10 10:10:11

Web開發Web工具

2020-01-06 17:45:13

GitJavaScriptCSS

2017-02-24 19:10:45

C#開發人員

2020-07-06 07:48:42

開發成功技巧

2010-05-17 09:50:24

PHP

2015-11-23 10:47:27

2015-07-28 16:38:56

App移動開發

2024-02-14 08:00:00

ChatGPTReact人工智能

2019-04-24 08:56:34

Java開發人員常犯錯誤

2009-12-08 19:39:16

PHP開發人員

2021-11-30 17:37:14

ReactRedux

2023-06-15 15:48:36

Grafana開發前端

2010-08-09 16:09:25

2012-05-30 15:15:42

ibmdw

2023-03-15 07:12:53

企業開發人員提供商

2009-11-23 20:07:51

ibmdw開發

2021-02-19 09:33:01

kubernetesJAVA服務

2009-12-11 14:50:14

Visual Basi

2020-10-13 08:41:58

Java開發框架

2021-08-21 15:19:50

Linux開發工具
點贊
收藏

51CTO技術棧公眾號

国产性xxxx| 国产wwwxx| 色哟哟在线观看| 丝袜亚洲另类欧美综合| 丝袜亚洲另类欧美重口| av在线天堂网| 成人免费网站www网站高清| 亚洲天堂精品在线观看| 久久66热这里只有精品| 一级成人免费视频| 国产亚洲综合精品| 精品国产一区二区三区久久久| 日韩av无码一区二区三区不卡| 毛葺葺老太做受视频| 婷婷丁香花五月天| 精品一区二区免费在线观看| 高清欧美性猛交xxxx黑人猛交| 谁有免费的黄色网址| 日韩成人在线看| 色播五月激情综合网| 日本道在线视频| 第一页在线观看| 成人小视频免费在线观看| 国产精品视频网址| 二区视频在线观看| 激情久久中文字幕| 精品国产区一区二区三区在线观看| 日本少妇xxxx| 欧美一区一区| 欧美视频一区二| 无码专区aaaaaa免费视频| 黄色片网站在线观看| 日本一区二区视频在线| 久久av二区| 女人18毛片水真多18精品| 精品无码三级在线观看视频| 国产97在线亚洲| 国产成年人免费视频| 香蕉精品视频在线观看| 中文字幕亚洲欧美| 国产又大又粗又爽的毛片| 欧美精品中文| 亚洲精品在线观看视频| 国产999免费视频| 亚洲午夜国产成人| 欧美午夜一区二区三区免费大片| 女人扒开屁股爽桶30分钟| 欧美日韩在线视频免费观看| 一区二区在线观看av| 久久久国产精华液999999| 91精品国产综合久久久久久豆腐| 国产亚洲综合色| 欧美极品色图| 免费播放片a高清在线观看| www.爱久久.com| 成人激情直播| 亚洲乱熟女一区二区| 成人免费毛片app| 成人看片视频| 亚洲女人18毛片水真多| 国产91综合网| 国产精品伊人日日| 亚洲人妻一区二区三区| 91在线国产福利| 玖玖玖精品中文字幕| 日本不卡免费播放| 久久亚区不卡日本| 色狠狠久久av五月综合| av资源种子在线观看| 中文字幕一区二区三| 制服国产精品| 欧美videosex性欧美黑吊| 亚洲一区二区黄色| 毛片在线播放视频| 日本综合字幕| 欧美日韩一区精品| 一区二区久久精品| jazzjazz国产精品久久| 亚洲精品久久久久久下一站 | 亚洲男人天堂古典| 国产美女免费无遮挡| 残酷重口调教一区二区| 神马国产精品影院av| 久久高清内射无套| 亚洲日产国产精品| 日韩av成人在线观看| 在线免费看av的网站| 国产福利一区在线观看| 精品国产乱码久久久久久蜜柚| 欧洲伦理片一区 二区 三区| 中文字幕精品综合| 特级西西444| 蜜桃av在线播放| 欧美日韩1区2区| 国产精品欧美性爱| 欧美人妖在线| 欧美成人午夜影院| 中文字幕国产在线观看| 国产一区二区三区观看| 久久国产精品高清| 精精国产xxxx视频在线| 亚洲第一成年网| 91制片厂毛片| 欧美丝袜美腿| 久久精品视频网站| 欧美一级特黄视频| 美女网站视频久久| 久久99精品久久久水蜜桃| 欧美三级黄网| 日韩欧美视频一区二区三区| 亚洲图片 自拍偷拍| 在线日韩一区| 欧美激情乱人伦一区| 中文在线字幕av| va亚洲va日韩不卡在线观看| 樱花www成人免费视频| 英国三级经典在线观看| 日韩女优av电影在线观看| 中文字幕免费在线看线人动作大片| 狠狠爱成人网| 91香蕉国产在线观看| 国产一二三在线观看| 亚洲成人免费在线观看| 九九热精品国产| 奇米狠狠一区二区三区| 午夜精品一区二区三区av| 国产精品人人妻人人爽| 国产日产欧美一区二区三区| 免费看国产一级片| 91成人精品在线| 久久高清视频免费| 中文字幕欧美在线观看| 久久精品亚洲精品国产欧美| www..com日韩| 91成人精品在线| 欧美成人免费在线视频| 国产一区二区在线不卡| 中文字幕乱码久久午夜不卡 | 国产精品一卡二卡| 黄瓜视频免费观看在线观看www| 成人黄色免费短视频| 日韩久久精品成人| 偷偷操不一样的久久| 丁香五精品蜜臀久久久久99网站| 成年丰满熟妇午夜免费视频| 国产在线视频欧美一区| 久久精品国产亚洲一区二区| 91国内精品视频| 国产精品国产自产拍高清av王其| 日日噜噜噜噜久久久精品毛片| 亚洲人和日本人hd| 国产999在线| 国产香蕉在线| 欧美网站一区二区| 少妇愉情理伦三级| 蜜桃视频一区二区三区在线观看| 婷婷四房综合激情五月| 久久91视频| 精品国偷自产在线| 国产普通话bbwbbwbbw| 亚洲猫色日本管| 久久久男人的天堂| 亚洲人人精品| 蜜桃导航-精品导航| 另类图片综合电影| 中文字幕欧美日韩在线| 97人妻精品一区二区三区| 亚洲日本青草视频在线怡红院 | 亚洲成人第一网站| 中文字幕精品一区二区三区精品| 污污网站免费看| 在线中文一区| 韩国成人动漫在线观看| 芒果视频成人app| 中文字幕亚洲欧美日韩在线不卡 | 美女100%一区| 色哟哟入口国产精品| 国产高清在线观看视频| 亚洲国产你懂的| www.av欧美| 麻豆精品在线播放| 成人毛片100部免费看| 国产成人精品福利| 78色国产精品| 成人18在线| 日韩精品一区在线观看| 国产成人一级片| 中文字幕日本不卡| 中文字幕在线播放视频| 日韩国产在线一| 4444亚洲人成无码网在线观看| 狼人精品一区二区三区在线| 国产精品看片资源| 黄页网站在线| 中文字幕欧美亚洲| 色噜噜一区二区三区| 在线视频一区二区三| www.超碰在线观看| 久久久久久黄色| 性高潮久久久久久| 丝袜亚洲另类丝袜在线| 免费网站在线观看视频| 日本一区二区免费高清| 国产精品免费在线| 婷婷激情成人| 日本高清+成人网在线观看| 日本免费中文字幕在线| 日韩不卡中文字幕| 国产美女无遮挡永久免费| 色综合一区二区| 久久黄色免费网站| 国产精品成人免费| 欧美黑人欧美精品刺激| 国产老肥熟一区二区三区| 亚洲黄色a v| 99成人在线| 国产高清www| 999成人精品视频线3| 欧洲精品久久| 欧美黑人巨大videos精品| 国产中文字幕91| 97久久香蕉国产线看观看| 欧美极品第一页| 免费在线看a| 国产一区二区美女视频| 亚洲日本在线播放| 精品久久久影院| av片免费播放| 3d成人动漫网站| 中文字幕在线播放不卡| 91福利小视频| 中文字幕日韩免费| 欧美午夜激情在线| 欧美一二三区视频| 亚洲国产cao| 久草福利资源在线观看| 亚洲图片欧美激情| 香蕉久久久久久久| 日本一区二区久久| 91精品久久久久久久久久久久| 91免费看`日韩一区二区| 久久久久久久久久久久国产精品| 国产一区二区三区综合| 一级做a爱视频| 国内精品免费**视频| 五月激情五月婷婷| 麻豆精品视频在线观看| 国产精品一区二区小说| 美女视频第一区二区三区免费观看网站| 久章草在线视频| 久久综合狠狠| 国产精品69页| 日韩精品视频网站| 在线观看高清免费视频| 日本欧美在线看| 福利视频999| 国产精品99久久不卡二区| 亚洲精品久久久久久| 国产成人精品一区二| 无码人妻一区二区三区精品视频 | 国产精品一区二区三区观看| 国产精品色在线网站| 久久66热这里只有精品| 亚洲盗摄视频| 日韩电影免费观看在| 欧美日韩性在线观看| 综合网五月天| 影音先锋亚洲精品| 日韩免费一级视频| 久久久久久穴| 小明看看成人免费视频| 国产一级精品在线| 国产精品果冻传媒| 久久久亚洲午夜电影| 毛片久久久久久| 一二三区精品视频| 国产 日韩 欧美 在线| 日本韩国一区二区三区| 国产精品熟女久久久久久| 日韩女优av电影在线观看| 四虎影院在线播放| 国产一区二区三区欧美| av在线播放国产| 韩国19禁主播vip福利视频| 色8久久影院午夜场| 成人久久久久爱| 久久久久高潮毛片免费全部播放| 日本黑人久久| 国产精品扒开腿做爽爽爽软件| 狠狠97人人婷婷五月| 另类成人小视频在线| 美国黄色一级视频| 欧美国产日韩精品免费观看| 午夜少妇久久久久久久久| 色综合天天综合色综合av| 国产精品热久久| 亚洲欧洲午夜一线一品| 成人免费观看视频大全| 热re91久久精品国99热蜜臀| 精品一级视频| 欧洲精品亚洲精品| 伊人激情综合| 色婷婷.com| 久久蜜桃一区二区| 免费视频网站www| 欧美日韩一区二区三区在线| 后入内射欧美99二区视频| 中文字幕亚洲无线码在线一区| 欧美xxxx免费虐| 国产精品永久在线| 婷婷五月色综合香五月| 日韩一级片一区二区| 免费视频一区二区| 国产高清自拍视频| 一区av在线播放| 国产又粗又猛视频| 亚洲石原莉奈一区二区在线观看| 欧美日韩经典丝袜| 91美女片黄在线观看游戏| jlzzjlzz亚洲女人| 97超碰青青草| 成人深夜在线观看| 久久久久亚洲av无码专区体验| 欧美日韩亚州综合| 国内在线精品| 欧美在线一区二区三区四| 成人激情自拍| 欧美一区二区三区综合| 久久国产精品一区二区| 99久久精品免费视频| 精品欧美一区二区三区| 国产高清精品软件丝瓜软件| 久久精品在线视频| 亚洲成人a级片| 亚洲一卡二卡三卡| 免费人成在线不卡| 一级免费黄色录像| 欧美在线一二三四区| 草碰在线视频| 国产精品久久久久久搜索 | 国产手机在线视频| 精品国产一区二区三区四区四| 91精选在线| 97人人干人人| 国产精品观看| 无码人妻一区二区三区免费n鬼沢| 亚洲免费毛片网站| 国产丝袜在线视频| 欧美夫妻性视频| 97人人澡人人爽91综合色| 免费的av在线| 成人午夜视频在线| 日韩成人在线免费视频| 亚洲精品电影网在线观看| 成人观看网址| 久久久精品国产一区二区三区| 亚洲欧美日韩国产| 91国模少妇一区二区三区| 欧美日韩激情小视频| 亚洲av成人精品日韩在线播放| 欧美中文在线免费| 国产精品欧美在线观看| 国产小视频精品| 亚洲女同ⅹxx女同tv| 黄片毛片在线看| 欧美在线一区二区视频| 色喇叭免费久久综合| 亚洲精品国产久| 亚洲va天堂va国产va久| 深夜福利视频一区| 国产精品中文久久久久久久| 亚洲人成免费网站| 中文字幕人妻一区二区三区| 在线观看国产精品网站| 中中文字幕av在线| 国产在线资源一区| 日本视频一区二区| 欧美精品一区二区成人| 日韩av中文字幕在线| www.成人在线视频| www.国产二区| 久久综合久久鬼色中文字| 中文字幕男人天堂| 久久久日本电影| 国产精品嫩模av在线| 手机看片国产精品| 色综合久久中文字幕综合网| 麻豆免费在线观看| 国产麻豆日韩| 麻豆91精品91久久久的内涵| 九九视频免费在线观看| 亚洲美女又黄又爽在线观看| av日韩一区| 国产日产欧美视频| 亚洲人成伊人成综合网小说| 午夜视频1000| 97超碰人人看人人| 三级精品在线观看| 久久9999久久免费精品国产| 中文字幕日韩专区|