React 函數組件傳遞ref


以前理所當然的認為,只要ref作為props傳進去,就可以直接給某個子組件用了,但是實際上不是這樣的

const Test = ({ref}) => {
    return <div ref={ref}>
        <p>hahahha</p>
    </div>
}

class TestWarper extends React.Component {
    ref = React.createRef();
    render() {
        return <Test ref={this.ref} />
    }
}
// 上面這種情況下,this.ref永遠是{current: null},在Test子組件也發現,傳進來的ref是undefined

面對這種情況,React有個方法,可以支持Ref的傳遞:forwardRef

import React, {forwardRef} from 'react';

// 包一層forwardRef
const Test = forwardRef((props, ref:any) => {
    return <div ref={ref}>
        <p>hahahha</p>
    </div>
})

class TestWarper extends React.Component {
    ref = React.createRef();
    render() {
        return <Test ref={this.ref} />
    }
}
// 這種情況下,this.ref就會是{current: div}了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM