中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

石家莊做商城網(wǎng)站的公司網(wǎng)站點(diǎn)擊量與排名

石家莊做商城網(wǎng)站的公司,網(wǎng)站點(diǎn)擊量與排名,wordpress 注冊(cè)圖形驗(yàn)證碼,軟件界面設(shè)計(jì)素材forwardRef 【寫在前面】 ? 1、ref 的作用是獲取實(shí)例,但由于函數(shù)組件不存在實(shí)例,因此無法通過 ref 獲取函數(shù)組件的實(shí)例引用,而 React.forwardRef 就是用來解決這個(gè)問題的。 ? 2、React.forwardRef 會(huì)創(chuàng)建一個(gè) React 組件,這個(gè)組…

forwardRef

【寫在前面】

? 1、ref 的作用是獲取實(shí)例,但由于函數(shù)組件不存在實(shí)例,因此無法通過 ref 獲取函數(shù)組件的實(shí)例引用,而 React.forwardRef?就是用來解決這個(gè)問題的。

? 2、React.forwardRef?會(huì)創(chuàng)建一個(gè) React 組件,這個(gè)組件能夠?qū)⑵浣邮盏降?ref 屬性轉(zhuǎn)發(fā)到自己的組件樹。

1.?無法直接使用 ref 引用函數(shù)式組件

在下面的例子中,父組件 Father 想通過 ref 引用子組件 Child,此時(shí)代碼會(huì)報(bào)錯(cuò),因?yàn)楹瘮?shù)式組件沒有實(shí)例對(duì)象,無法被直接引用:

// 父組件
export const Father: React.FC = () => {const childRef = useRef()return (<><h1>Father 父組件</h1><hr /><!-- 下面這行代碼中的 ref 使用不正確,因?yàn)?Child 組件是函數(shù)式組件,無法被直接引用 --><Child ref={childRef} /></>)
}

Child 組件的定義如下:

// 子組件(實(shí)現(xiàn)點(diǎn)擊按鈕,數(shù)值加減的操作)
const Child: React.FC = () => {const [count, setCount] = useState(0)const add = (step: number) => {setCount((prev) => (prev += step))}return (<><h3>Child 子組件 {count}</h3><button onClick={() => add(-1)}>-1</button><button onClick={() => add(1)}>+1</button></>)
}

注意:上面的代碼無法正常運(yùn)行,會(huì)在終端提示如下的 Warning 警告:

Warning:
Function components cannot be given refs. Attempts to access this ref will fail.
Did you mean to use React.forwardRef()?

錯(cuò)誤提示中有解決此問題的關(guān)鍵提示:Did you mean to use React.forwardRef()?

2.?forwardRef 的基本使用

在使用函數(shù)組件時(shí),我們無法直接使用 ref 引用函數(shù)式組件,下面的代碼會(huì)產(chǎn)生報(bào)錯(cuò):

const childRef = useRef(null) 
return <Child ref={inputRef} />

因?yàn)槟J(rèn)情況下,你自己的組件不會(huì)暴露它們內(nèi)部 DOM 節(jié)點(diǎn)的 ref。

正確的方法是使用 React.forwardRef()?把函數(shù)式組件包裝起來

例如 Child 子組件的代碼如下:

// 被包裝的函數(shù)式組件,第一個(gè)參數(shù)是 props,第二個(gè)參數(shù)是轉(zhuǎn)發(fā)過來的 ref
const Child = React.forwardRef((props, ref) => {// 省略子組件內(nèi)部的具體實(shí)現(xiàn)
}) 

然后,在父組件 Father 中,就可以給子組件 Child 綁定 ref 了:

// 父組件
export const Father: React.FC = () => {const childRef = useRef()// 按鈕的點(diǎn)擊事件處理函數(shù)const onShowRef = () => {console.log(childRef.current)}return (<><h1>Father 父組件</h1>{/* 點(diǎn)擊按鈕,打印 ref 的值 */}<button onClick={onShowRef}>show Ref</button><hr /><Child ref={childRef} /></>)
}

注意:此時(shí)父組件 Father 中獲取到的 ref.current 是 undefined,因?yàn)樽咏M件 Child 沒有向外暴露任何自己內(nèi)部的東西。

http://m.risenshineclean.com/news/59430.html

相關(guān)文章:

  • 自己做網(wǎng)站流程有道搜索引擎入口
  • 吉林市網(wǎng)站推廣百度宣傳推廣費(fèi)用
  • 織夢(mèng)網(wǎng)站 聯(lián)系方式修改今天的病毒感染情況
  • 湖北住房和城鄉(xiāng)建設(shè)部網(wǎng)站直接下載app
  • 網(wǎng)站備案在外地怎樣創(chuàng)建網(wǎng)站平臺(tái)
  • 兩學(xué)一做注冊(cè)網(wǎng)站嗎網(wǎng)絡(luò)廣告有哪些形式
  • 平面設(shè)計(jì)比較好的網(wǎng)站廣告投放平臺(tái)系統(tǒng)
  • 金色世紀(jì)做網(wǎng)站的是哪個(gè)崗位發(fā)布推廣信息的網(wǎng)站
  • 在縣城怎么做網(wǎng)站公司seo教程優(yōu)化
  • 做網(wǎng)站不打廣告怎么賺錢網(wǎng)絡(luò)營銷是什么工作
  • 公司微網(wǎng)站怎么建設(shè)廣州線上教學(xué)
  • 動(dòng)易網(wǎng)站后臺(tái)密碼破解寧夏百度推廣代理商
  • 航達(dá)建設(shè)網(wǎng)站上海優(yōu)質(zhì)網(wǎng)站seo有哪些
  • 有沒有什么做統(tǒng)計(jì)的網(wǎng)站網(wǎng)絡(luò)營銷比較好的企業(yè)
  • 如何解決網(wǎng)站只收錄首頁的一些辦法小程序制作
  • cms網(wǎng)站地圖模板東莞搜索引擎推廣
  • 開淘寶店和做網(wǎng)站有什么區(qū)別福鼎網(wǎng)站優(yōu)化公司
  • 直接打域名訪問網(wǎng)站關(guān)鍵詞推廣工具
  • 網(wǎng)站制作設(shè)及的技術(shù)產(chǎn)品營銷策劃方案3000字
  • 廣州定制網(wǎng)站建設(shè)廣東seo網(wǎng)站推廣代運(yùn)營
  • 成都網(wǎng)站開發(fā)哪個(gè)好深圳seo優(yōu)化排名
  • 嵌入式培訓(xùn)班多少錢seo優(yōu)化推廣軟件
  • 企業(yè)網(wǎng)站備案 名稱沈陽seo博客
  • 伊通縣建設(shè)局網(wǎng)站常德政府網(wǎng)站
  • 學(xué)校英語網(wǎng)站欄目名稱域名備案
  • WordPress漢化卡片式主題長嶺網(wǎng)站優(yōu)化公司
  • 做直播網(wǎng)站需要什么環(huán)球軍事網(wǎng)
  • 網(wǎng)站建設(shè)好之后怎么自己推廣免費(fèi)推廣引流平臺(tái)有哪些
  • 服務(wù)器做網(wǎng)站需安裝哪些軟件佛山網(wǎng)站建設(shè)排名
  • 外包做網(wǎng)站賺錢么app注冊(cè)推廣拉人