精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

精品视频第一区| 69av在线播放| 91人妻一区二区| 美女高潮视频在线看| 国产午夜精品福利| 亚洲综合精品伊人久久| 欧美三级一区二区三区| heyzo久久| 日韩精品中文字幕一区| 东京热加勒比无码少妇| 免费黄色电影在线观看| 不卡一二三区首页| 国产精品久久久久久久久久久不卡 | 好吊色欧美一区二区三区四区| 欧美一区免费看| 午夜精品亚洲| 视频一区视频二区国产精品| 韩国无码一区二区三区精品| 国内不卡的一区二区三区中文字幕| 都市激情亚洲色图| 日本三级福利片| 国产午夜精品一区理论片| 国产精品99久久久久| 国产精品激情自拍| 毛片视频网站在线观看| 国精品一区二区三区| 色狠狠久久aa北条麻妃| av在线网站观看| 超碰97久久国产精品牛牛| 欧美日韩精品一区二区三区蜜桃 | 成人h动漫精品一区二| 国产欧美一区二区三区四区 | 国产精品高颜值在线观看| 亚洲视频在线一区二区| 亚洲第一综合| 黄色片在线免费看| 91碰在线视频| 国产一区视频观看| 亚洲精品18在线观看| 精品亚洲国产成人av制服丝袜| 国产精品白丝jk喷水视频一区| 成人免费看片98欧美| 亚洲黄页一区| 97在线视频观看| 日韩精品无码一区二区| 在线观看不卡| 午夜精品视频在线| 国产成人啪精品午夜在线观看| 国产精品豆花视频| 久久久久久久久久久久av| 欧美成人aaa片一区国产精品| 91精品福利| 欧美精品做受xxx性少妇| 黄色录像免费观看| 欧美福利网址| 欧美国产视频日韩| 国产性生活网站| 亚洲午夜极品| 91精品国产91久久久久| 99热只有这里有精品| 另类av一区二区| 国产精品黄视频| 97超碰资源站| 国产精品99久久久久久有的能看| 91嫩草视频在线观看| 亚洲黄色在线播放| 99久久99久久精品国产片果冻| 精品国产乱码久久久久久郑州公司 | 欧美黄片一区二区三区| 欧美亚韩一区| 国产91av在线| 日本妇乱大交xxxxx| 久久99国产精品免费网站| 91亚洲国产成人精品性色| 精品黑人一区二区三区国语馆| 懂色av中文字幕一区二区三区| 国产综合欧美在线看| 麻豆国产在线播放| 中文字幕日本乱码精品影院| 性高湖久久久久久久久aaaaa| 岛国在线视频网站| 欧美午夜精品久久久| 免费不卡av网站| 伦理一区二区三区| 中文字幕日韩高清| 久久精品99久久久久久| 久久国产精品久久久久久电车| 国产精品专区一| 亚洲精品国偷拍自产在线观看蜜桃| 95精品视频在线| 亚洲乱码一区二区三区| 日本动漫同人动漫在线观看| 在线看不卡av| 潘金莲一级淫片aaaaa| 美女精品一区最新中文字幕一区二区三区| 影音先锋日韩有码| 国产一卡二卡在线播放| 美美哒免费高清在线观看视频一区二区| av一本久道久久波多野结衣| 黄色片在线免费看| 亚洲午夜av在线| 亚洲高清免费在线观看| 久久资源综合| 美日韩在线视频| 久久久久亚洲视频| 成人福利在线看| 午夜啪啪免费视频| 日韩三区免费| 337p日本欧洲亚洲大胆精品 | 成人综合一区| 98精品国产高清在线xxxx天堂| 一区二区三区精| 久久一夜天堂av一区二区三区| 日本三日本三级少妇三级66| 91亚洲视频| 日韩精品视频在线播放| 久久久久亚洲av成人片| 激情综合一区二区三区| 欧美一二三区| 不卡av影片| 亚洲护士老师的毛茸茸最新章节| 神马午夜精品91| 免费成人在线视频观看| 欧美一区二区三区四区在线观看地址| 第四色日韩影片| 欧美一区二区网站| 国产日韩精品中文字无码| 午夜在线精品| 韩日午夜在线资源一区二区| 91禁在线看| 欧美成人艳星乳罩| 26uuu成人网| 精品午夜久久福利影院| 亚洲精品乱码视频| 日韩一区二区三区免费视频| 亚洲天堂久久av| jizz国产在线观看| 久久综合狠狠综合久久综合88| 成人毛片一区二区| 国产成人在线中文字幕| 久久久久免费视频| www.日本在线观看| 一区二区免费在线播放| 青青草原播放器| 永久亚洲成a人片777777| 成人免费视频在线观看超级碰| 最新电影电视剧在线观看免费观看| 色欧美乱欧美15图片| 香蕉网在线播放| 狂野欧美一区| 亚洲福利av| 欧洲亚洲精品久久久久| 日韩中文字幕在线| 国产又粗又长视频| 亚洲码国产岛国毛片在线| 午夜影院免费版| 欧美日韩调教| 国产欧美在线一区二区| 色是在线视频| 亚洲午夜精品视频| 一区二区日韩在线观看| 亚洲精选视频免费看| 欧美性生交xxxxx| 国产精品一卡| 色综合久久88色综合天天提莫| www.久久| 欧美成人久久久| 黄色av一区二区三区| 欧美特级www| 永久免费观看片现看| 国产呦萝稀缺另类资源| 岛国大片在线播放| 亚洲系列另类av| 国产区精品在线观看| 99视频免费在线观看| 亚洲电影av在线| 日韩精选在线观看| 樱桃视频在线观看一区| jlzzjizz在线播放观看| 日本美女一区二区三区| av中文字幕av| 日韩影视高清在线观看| 国产精品偷伦免费视频观看的 | 69视频在线播放| 91在线不卡| 精品粉嫩超白一线天av| 一级久久久久久| 亚洲影院在线观看| 久久午夜福利电影| 国产99久久久国产精品免费看| 欧美激情成人网| 欧美网站在线| 三区精品视频| 超碰在线一区| 国产精品中文在线| h片在线观看视频免费| 在线观看日韩视频| 午夜黄色小视频| 91精品午夜视频| 日本a级c片免费看三区| 一区二区三区 在线观看视频| 男人操女人动态图| 成人性生交大片免费看视频在线 | 色偷偷av一区二区三区| 韩国av永久免费| 欧美精品少妇一区二区三区| 成人精品免费在线观看| 一区二区三区免费| 精品日韩在线视频| 91丨九色丨国产丨porny| 91性高潮久久久久久久| 视频一区免费在线观看| 久久99中文字幕| 女生裸体视频一区二区三区| 亚洲欧洲一二三| 国产欧美日韩精品一区二区三区 | 亚洲高清在线精品| 天海翼在线视频| 日本一区二区久久| 人妻丰满熟妇av无码久久洗澡| 丰满岳乱妇一区二区三区| 污污网站免费观看| 肉丝袜脚交视频一区二区| 国产毛片视频网站| 欧美视频成人| av动漫在线播放| 亚洲成av人电影| 亚洲精品国产精品国自产观看| 狠狠综合久久av一区二区蜜桃| 激情五月综合色婷婷一区二区| 6080成人| 国产精品9999久久久久仙踪林| 欧美大片91| 91超碰在线免费观看| 婷婷激情成人| 成人久久一区二区三区| 高清亚洲高清| 国产欧美精品xxxx另类| 国产福利亚洲| 成人午夜黄色影院| 99久久久国产| 99国产在线观看| 玖玖玖视频精品| 北条麻妃高清一区| 亚洲天堂av资源在线观看| 91免费观看| 第四色在线一区二区| 国产精品果冻传媒潘| 9国产精品午夜| 国产在线欧美日韩| 午夜欧洲一区| 日本10禁啪啪无遮挡免费一区二区| 欧美欧美黄在线二区| 日韩精品国内| 三区四区不卡| 黄色影视在线观看| 极品日韩av| 亚洲 高清 成人 动漫| 日韩精品午夜视频| 中文字幕永久有效| 国产精品自拍网站| 香港三日本8a三级少妇三级99| 91丨porny丨户外露出| 伊人网在线视频观看| 国产精品久久久久四虎| 69av.com| 一本到三区不卡视频| 在线观看毛片av| 日韩欧美一区二区三区在线| 天天射,天天干| 一区二区欧美久久| 亚洲综合图区| 日本欧美一二三区| 97精品资源在线观看| 国产精品精品软件视频| 亚洲深夜福利在线观看| 中文字幕剧情在线观看一区| 欧美黄色免费| 无码日韩人妻精品久久蜜桃| 精品一区二区三区视频| 久久久久亚洲AV成人无码国产| 国产午夜亚洲精品午夜鲁丝片| 岛国毛片在线观看| 色综合一个色综合| 国产免费黄色录像| 日韩精品免费在线观看| 黄色片免费在线观看| 97视频在线观看免费高清完整版在线观看| 日本精品在线中文字幕| 99porn视频在线| 国产成人一区二区三区影院| 91免费国产精品| 日韩av一二三| 永久免费未满蜜桃| 国产精品久线在线观看| 免费毛片在线播放免费| 欧美日韩午夜剧场| 国产视频手机在线观看| 亚洲欧美综合另类中字| 性欧美ⅴideo另类hd| 国产精品麻豆va在线播放| 粉嫩的18在线观看极品精品| 亚洲国产精品毛片| 亚洲一区二区三区高清不卡| 国产性生活一级片| 国产亚洲综合在线| 久久久精品视频免费| 91.com在线观看| 国产精品ⅴa有声小说| 国内精品模特av私拍在线观看| 亚洲一区二区三区久久久| 欧美一卡2卡3卡4卡无卡免费观看水多多| 国产精品激情电影| 国产成人在线综合| 国产日产欧美精品一区二区三区| 日本最新中文字幕| 日韩一级高清毛片| 欧美激情午夜| 国产精品久久久久久久电影| 美女少妇全过程你懂的久久| 日韩人妻无码精品久久久不卡| 国产呦萝稀缺另类资源| 国产一级淫片久久久片a级| 欧美小视频在线| 亚洲欧美一区二区三| 欧美激情一区二区三区在线视频观看| 国产情侣一区在线| 中文字幕一区二区三区在线乱码| 日本中文在线一区| 性欧美一区二区| 色综合久久久久综合体| 深夜福利免费在线观看| 91精品国产一区| 欧美交a欧美精品喷水| 免费看毛片的网址| 成人白浆超碰人人人人| 久久精品国产亚洲av香蕉 | 国产伦精品免费视频| 国产成人1区| 少妇高清精品毛片在线视频| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 久久视频在线| 国内外成人免费在线视频| 中文字幕成人av| 91丨porny丨在线中文| 日韩在线观看免费高清| 中文字幕日本一区| 亚洲成人动漫在线| 国产成人福利片| 国产精品7777777| 日韩国产精品视频| 都市激情亚洲一区| 日本欧洲国产一区二区| 免费在线观看日韩欧美| 亚洲a∨无码无在线观看| 欧美精品亚洲一区二区在线播放| 久做在线视频免费观看| 99re视频在线| 国产一区二区精品| 偷拍夫妻性生活| 欧美日韩二区三区| 制服丝袜中文字幕在线| 国产精华一区二区三区| 久久久天天操| 国产一二三四视频| 欧美成人精品3d动漫h| 男人av在线播放| 亚洲国产成人不卡| 国产精品996| 九九热在线视频播放| 这里只有精品久久| 奇米一区二区| 妺妺窝人体色www在线小说| 久久精品水蜜桃av综合天堂| 国产又大又黑又粗| 久久久久久美女| 欧美精品色图| 在线观看免费看片| 天堂一区二区在线| 亚洲精品成人天堂一二三| 日本丰满大乳奶| 石原莉奈在线亚洲二区| 婷婷社区五月天| 亚洲国产精品久久久久秋霞不卡 | 亚洲国产成人porn| 免费a在线观看| 91精品国产一区二区三区动漫 | 国产精品vip| av网站免费在线看| 欧美一区二区三区影视| 日韩精品极品| 在线观看亚洲视频啊啊啊啊| 成人精品在线视频观看| 亚洲视屏在线观看| 欧美精品久久久久久久久| 国产91久久精品一区二区| 人妻体体内射精一区二区| 色婷婷av一区二区三区大白胸| h片在线免费| 少妇精品久久久久久久久久|