站長資訊網
        最全最豐富的資訊網站

        react組件mount好幾次怎么辦

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

        react組件mount好幾次怎么辦

        本教程操作環境:Windows10系統、react18.2.0版、Dell G3電腦。

        react組件mount好幾次怎么辦?

        React 18 componentDidMount重復執行兩次的解決方案

        問題

        這兩天用create-react-app創建了一個新的React項目,在項目運行的時候,似乎有意想不到的事情發生,組件的componentDidMount方法被觸發了兩次。

        react組件mount好幾次怎么辦

        而更早的項目,同樣采用create-react-app創建的一個項目,卻沒有這個問題,當時真是一臉懵逼。。。

        排查

        首先想到的是前幾天將本地的create-react-app升級過,問題是不是create-react-app升級導致的,轉而一想應該沒關系。后來去仔細比較了兩個項目的package.json文件,發現之前的項目,React用的是17.x版本;而問題項目用的卻是18.2.0版本的React。

        后來去React官方Github,果然找到關于18版本的一些Feature,鏈接:https://github.com/facebook/react/blob/main/CHANGELOG.md#breaking-changes:

        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會提供一個新特性,該特性會使得組件取消加載后能維持狀態。React 18會再Strict Mode中引入一個新的開發模式。React將會對每一個組件自動取消加載并重新加載。如果其干擾了你的應用,移除Strict Mode就能夠修復組件重新加載的問題。(本人蹩腳的英語翻譯的,將就這看。。。)

        解決方案

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

        修改前:

        root.render(   <React.StrictMode>     <App />   </React.StrictMode> );
        登錄后復制

        修改后:

        root.render(   // 去除React.StrictMode   // <React.StrictMode>     <App />   // </React.StrictMode> );
        登錄后復制

        至此,問題便完美的解決。

        推薦學習:《react視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产激情精品一区二区三区| 国产精品爱搞视频网站| 九九热在线视频观看这里只有精品| 国产午夜精品久久久久九九电影| 99在线精品一区二区三区| 亚洲国产另类久久久精品| 国产综合免费精品久久久| 九九热精品在线| 国产成人精品男人的天堂538| 亚洲精品美女久久777777| 男女男精品网站免费观看| 国产高清在线精品一本大道| 久久精品国产91久久综合麻豆自制| 久久精品www人人爽人人| 亚洲国产精品一区二区九九| 久久精品无码一区二区三区免费| 国产精品 综合 第五页| 午夜影视日本亚洲欧洲精品一区| av国内精品久久久久影院| 久久狠狠高潮亚洲精品| 亚洲av成人无码久久精品| 亚洲婷婷国产精品电影人久久| 完整观看高清秒播国内外精品资源| 精品国产综合区久久久久久| 国产欧美日本精品| 国产精品欧美久久久久无广告| 国产成人精品a视频一区| 777被窝午夜精品影院| 一区二区三区精品国产欧美| 日本一区二区三区精品中文字幕| 久久伊人精品青青草原高清| 国产亚洲美女精品久久久久狼| 国产短视频精品一区二区三区| 99精品久久精品一区二区| 国产精品久久国产精麻豆99网站| 国产精品久久成人影院| 欧美成人精品一级高清片| 91久久精品电影| 国模精品一区二区三区| 久久精品成人免费观看97| 网友偷拍日韩精品|