欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

React中父組件如何獲取子組件的值或方法

 更新時(shí)間:2022年08月11日 11:57:25   作者:qing_小諾  
這篇文章主要介紹了React中父組件如何獲取子組件的值或方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

父組件獲取子組件的值或方法

先來(lái)說(shuō)下從哪獲取的啟發(fā),想要從父組件獲取子組件的值或方法。。。

一次寫代碼的時(shí)候,用 Antd 中的 Modal 包裹了一個(gè)子組件,子組件中包含 input 輸入框,想要在點(diǎn)擊對(duì)話框上面確定按鈕時(shí)(即Modal 自帶的 onOk方法),拿到其中輸入的值

下面用一個(gè)父組件(Father.js)和子組件(Hearder.js)來(lái)演示如何能拿到值和方法:

方法一

給子組件添加屬性 ref='footer'

<Header ref='footer'></Header>

 然后在父組件用 this.refs.footer.xxx 的方式拿值

alert(this.refs.footer.state.sonmsg);//拿到子組件中state中的值
this.refs.footer.run();//拿到子組件中runn方法

方法二

給子組件添加 onRef={(ref) => { this.child = ref; }}

<Header onRef={(ref) => { this.child = ref; }}></Header>

然后在子組件中添加生命周期的 componentDidMount 這個(gè)方法:

componentDidMount() {
? ? ?if (this.props.onRef) {
? ? ? ? this.props.onRef(this);
? ? ?}
}

然后在父組件用 this.child.xxx 的方式拿值

alert(this.child.state.sonmsg);
this.child.run();

方法三

在父組件創(chuàng)建ref容器:this.pw = React.createRef()

constructor(props) {
? ? super(props);
? ? // 方法3:創(chuàng)建用來(lái)保存ref標(biāo)識(shí)的標(biāo)簽對(duì)象的容器
? ? this.pw = React.createRef()
}

然后給子組件添加屬性:ref={this.pw}

<Header ref={this.pw}></Header>

然后就可以在父組件用 this.pw.current 拿到子組件值和方法:

alert(this.pw.current.state.sonmsg);?
this.pw.current.run()

React函數(shù)式組件傳值之子傳父

在用react進(jìn)行函數(shù)式編程時(shí),父組件可以通過(guò)props向子組件傳值,那么子組件怎么向父組件傳值呢?

首先,父組件需要向子組件傳遞一個(gè)函數(shù),然后,子組件通過(guò)props獲取函數(shù)并附上參數(shù),最后,父組件通過(guò)函數(shù)拿到子組件傳遞的值。

具體案例

父組件:home.tsx

import React, { useState } from 'react';
import Child from './component/child';
import './index.less';
 
const Home: React.FC = () => {
  const [parentCount, setParentCountt] = useState<number>(0);
 
  const getChildCount = (val: number) => {
    setParentCountt(val);
  };
 
  return (
    <div className="home-wrap">
      <p>我是父組件</p>
      <p>子組件傳過(guò)來(lái)的數(shù)字:{parentCount}</p>
      <Child getCount={getChildCount} />
    </div>
  );
};
 
export default Home;

子組件:child.tsx

import React, { useState } from 'react';
 
type selfProps = {
  getCount: Function;
};
 
const Child: React.FC<selfProps> = (props) => {
  const { getCount } = props;
  const [count, setCount] = useState<number>(0);
 
  const addCount = (val: number) => {
    setCount(val);
    getCount(val);
  };
 
  return (
    <div className="child-wrap">
      <p>子組件</p>
      <p>數(shù)字:{count}</p>
      <button onClick={() => addCount(count + 1)}>數(shù)字遞增</button>
    </div>
  );
};
 
export default Child;

效果展示

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • React?Refs?的使用forwardRef?源碼示例解析

    React?Refs?的使用forwardRef?源碼示例解析

    這篇文章主要為大家介紹了React?之?Refs?的使用和?forwardRef?的源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • React如何優(yōu)雅的捕獲異常

    React如何優(yōu)雅的捕獲異常

    捕獲異常是來(lái)定位你錯(cuò)誤代碼的。本文主要介紹了 React如何捕獲異常,你知道多少種方法,ErrorBoundary,ErrorBoundary-try-catch等等。本文就來(lái)詳細(xì)的介紹一下
    2021-06-06
  • React Native功能豐富的Toast通知庫(kù)

    React Native功能豐富的Toast通知庫(kù)

    這篇文章主要為大家介紹了React Native功能豐富的Toast通知庫(kù)使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • windows下create-react-app 升級(jí)至3.3.1版本踩坑記

    windows下create-react-app 升級(jí)至3.3.1版本踩坑記

    這篇文章主要介紹了windows下create-react-app 升級(jí)至3.3.1版本踩坑記,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • React實(shí)現(xiàn)核心Diff算法的示例代碼

    React實(shí)現(xiàn)核心Diff算法的示例代碼

    這篇文章主要為大家詳細(xì)介紹了React如何實(shí)現(xiàn)Diff算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-04-04
  • 詳解使用React進(jìn)行組件庫(kù)開(kāi)發(fā)

    詳解使用React進(jìn)行組件庫(kù)開(kāi)發(fā)

    本篇文章主要介紹了詳解使用React進(jìn)行組件庫(kù)開(kāi)發(fā),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • 一文帶你搞懂useCallback的使用方法

    一文帶你搞懂useCallback的使用方法

    useCallback是用來(lái)幫忙緩存函數(shù)的,當(dāng)依賴項(xiàng)沒(méi)有發(fā)生變化時(shí),返回緩存的指針,而props涉及到復(fù)雜對(duì)象類型都是通過(guò)指針來(lái)傳遞到,下面這篇文章主要給大家介紹了關(guān)于useCallback使用的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • React實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)(左右聯(lián)動(dòng))

    React實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)(左右聯(lián)動(dòng))

    這篇文章主要為大家詳細(xì)介紹了React實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • React結(jié)合Drag?API實(shí)現(xiàn)拖拽示例詳解

    React結(jié)合Drag?API實(shí)現(xiàn)拖拽示例詳解

    這篇文章主要為大家介紹了React結(jié)合Drag?API實(shí)現(xiàn)拖拽示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 通過(guò)示例講解Remix?設(shè)計(jì)哲學(xué)理念

    通過(guò)示例講解Remix?設(shè)計(jì)哲學(xué)理念

    這篇文章主要為大家通過(guò)示例講解了Remix?設(shè)計(jì)哲學(xué)理念,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03

最新評(píng)論