react組件mount好幾次如何解決

這篇文章主要講解了“react組件mount好幾次如何解決”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“react組件mount好幾次如何解決”吧!

在坡頭等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需開發(fā)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),營銷型網(wǎng)站,外貿(mào)網(wǎng)站制作,坡頭網(wǎng)站建設(shè)費(fèi)用合理。

react組件mount好幾次的解決辦法:1、找到并打開“index.tsx”或者“index.js”文件;2、找到“root.render(<React.StrictMode><App /></React.StrictMode>);”代碼;3、將“React.StrictMode”高階組件包圍去掉即可。

React 18 componentDidMount重復(fù)執(zhí)行兩次的解決方案

問題

這兩天用create-react-app創(chuàng)建了一個(gè)新的React項(xiàng)目,在項(xiàng)目運(yùn)行的時(shí)候,似乎有意想不到的事情發(fā)生,組件的componentDidMount方法被觸發(fā)了兩次。

react組件mount好幾次如何解決

而更早的項(xiàng)目,同樣采用create-react-app創(chuàng)建的一個(gè)項(xiàng)目,卻沒有這個(gè)問題,當(dāng)時(shí)真是一臉懵逼。。。

排查

首先想到的是前幾天將本地的create-react-app升級(jí)過,問題是不是create-react-app升級(jí)導(dǎo)致的,轉(zhuǎn)而一想應(yīng)該沒關(guān)系。后來去仔細(xì)比較了兩個(gè)項(xiàng)目的package.json文件,發(fā)現(xiàn)之前的項(xiàng)目,React用的是17.x版本;而問題項(xiàng)目用的卻是18.2.0版本的React。

后來去React官方Github,果然找到關(guān)于18版本的一些Featur

Stricter Strict Mode: In the future, React will provide a feature that lets components preserve state between unmounts. To prepare for it, React 18 introduces a new development-only check to Strict Mode. React will automatically unmount and remount every component, whenever a component mounts for the first time, restoring the previous state on the second mount. If this breaks your app, consider removing Strict Mode until you can fix the components to be resilient to remounting with existing state.

大意如下:

在未來,React會(huì)提供一個(gè)新特性,該特性會(huì)使得組件取消加載后能維持狀態(tài)。React 18會(huì)再Strict Mode中引入一個(gè)新的開發(fā)模式。React將會(huì)對(duì)每一個(gè)組件自動(dòng)取消加載并重新加載。如果其干擾了你的應(yīng)用,移除Strict Mode就能夠修復(fù)組件重新加載的問題。

解決方案

知道了原因之后,解決方案也很簡單,將index.tsx或者index.js文件里的React.StrictMode高階組件包圍去掉即可。

修改前:

root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

修改后:

root.render(
  // 去除React.StrictMode
  // <React.StrictMode>
    <App />
  // </React.StrictMode>
);

感謝各位的閱讀,以上就是“react組件mount好幾次如何解決”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)react組件mount好幾次如何解決這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)頁名稱:react組件mount好幾次如何解決
網(wǎng)站鏈接:http://bm7419.com/article44/isghee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)網(wǎng)站設(shè)計(jì)公司、App開發(fā)品牌網(wǎng)站設(shè)計(jì)、虛擬主機(jī)動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)