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

        react null報錯怎么辦

        react null報錯的解決辦法:1、打開相應的js文件;2、檢查元素是否已經渲染到DOM上;3、在useEffect鉤子中訪問ref,或者當事件觸發時再訪問ref即可。

        react null報錯怎么辦

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

        react null報錯怎么辦?

        React報錯之ref返回undefined或null

        當我們試圖在其對應的DOM元素被渲染之前訪問其current屬性時,React的ref通常會返回undefined或者null。為了解決該問題,可以在useEffect鉤子中訪問ref,或者當事件觸發時再訪問ref。

        import {useRef, useEffect} from 'react'; export default function App() {   const ref = useRef();   console.log(ref.current); // ?️ undefined here   useEffect(() => {     const el2 = ref.current;     console.log(el2); // ?️ element here   }, []);   return (     <div>       <div ref={ref}>         <h2>Hello</h2>       </div>     </div>   ); }
        登錄后復制

        useEffect

        useRef()鉤子可以傳遞一個初始值作為參數。該鉤子返回一個可變的ref對象,ref對象上的current屬性被初始化為傳遞的參數。

        我們沒有為useRef傳遞初始值,因此其current屬性設置為undefined。如果我們將null傳遞給鉤子,如果立即訪問其current屬性,將會得到null。

        需要注意的是,我們必須訪問ref對象上的current屬性,以此來訪問設置了ref屬性的div元素。

        當我們為元素傳遞ref屬性時,比如說,<div ref={myRef} /> ,React將ref對象的.current屬性設置為相應的DOM節點。

        我們使用useEffect鉤子,是因為我們想要確保ref已經設置在元素上,并且元素已經渲染到DOM上。

        如果我們嘗試在組件中直接訪問ref上的current屬性,我們會得到undefined,是因為 ref 還沒有被設置,而且 div 元素還沒有被渲染。

        事件

        你也可以在事件處理函數中訪問ref的current屬性。

        import {useRef, useEffect} from 'react'; export default function App() {   const ref = useRef();   console.log(ref.current); // ?️ undefined here   useEffect(() => {     const el2 = ref.current;     console.log(el2); // ?️ element here   }, []);   const handleClick = () => {     console.log(ref.current); // ?️ element here   };   return (     <div>       <div ref={ref}>         <h2>Hello</h2>       </div>       <button onClick={handleClick}>Click</button>     </div>   ); }
        登錄后復制

        當用戶點擊按鈕的時候,ref已經被設置好了,相應的元素已經被渲染到DOM中,所以我們能夠訪問它。

        總結

        可以在useEffect鉤子中訪問ref,或者當事件觸發時再訪問ref。也就是說,要確保元素已經渲染到DOM上。

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

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 91精品国产福利在线观看| 国产精品主播一区二区| 国产精品午夜一级毛片密呀| 最新精品亚洲成a人在线观看| 青青青青久久精品国产| 久久国产亚洲精品无码| 精品日韩欧美国产| 精品亚洲永久免费精品| 人妻少妇精品视频二区| 欧美国产成人久久精品 | 精品无码国产污污污免费网站| 惠民福利中文字幕人妻无码乱精品 | 亚洲国产精品一区二区久久hs| 国产乱子伦精品免费视频 | 久久99精品久久久久久动态图| 亚洲精品无码专区在线播放| 精品水蜜桃久久久久久久| 国产精品∧v在线观看| 91精品国产综合久久四虎久久无码一级 | 无码国产69精品久久久久网站 | 好吊妞视频精品| 99在线精品视频观看免费| 嫩草伊人久久精品少妇AV| 日韩精品无码一区二区三区免费| 亚洲国产精品专区在线观看| 青草国产精品视频。| 日韩一区二区精品观看| 亚洲精品第一国产综合境外资源| 毛片a精品**国产| 亚洲欧美精品一区久久中文字幕| 亚洲国产综合精品一区在线播放| 久久性精品| 亚洲欧美日韩国产精品一区二区| 亚洲一区二区三区国产精品| 亚洲精品高清在线| 中文成人无字幕乱码精品区| 一本久久a久久精品vr综合| 亚洲精品无码AV人在线播放| 日韩精品国产另类专区| 精品福利一区二区三区免费视频| 国产精品亚韩精品无码a在线|