最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

一次寫(xiě)代碼的時(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操作DOM之forwardRef問(wèn)題

    React操作DOM之forwardRef問(wèn)題

    這篇文章主要介紹了React操作DOM之forwardRef問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • webpack4+react多頁(yè)面架構(gòu)的實(shí)現(xiàn)

    webpack4+react多頁(yè)面架構(gòu)的實(shí)現(xiàn)

    webpack在單頁(yè)面打包上應(yīng)用廣泛,以create-react-app為首的腳手架眾多。這篇文章主要介紹了webpack4+react多頁(yè)面架構(gòu)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • 簡(jiǎn)析React Native startReactApplication 方法

    簡(jiǎn)析React Native startReactApplication 方法

    這篇文章主要介紹了React Native startReactApplication 方法簡(jiǎn)析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 解決React報(bào)錯(cuò)Expected?`onClick`?listener?to?be?a?function

    解決React報(bào)錯(cuò)Expected?`onClick`?listener?to?be?a?function

    這篇文章主要為大家介紹了React報(bào)錯(cuò)Expected?`onClick`?listener?to?be?a?function解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • React組件實(shí)例三大屬性state props refs使用詳解

    React組件實(shí)例三大屬性state props refs使用詳解

    這篇文章主要為大家介紹了React組件實(shí)例三大屬性state props refs使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • React?18?如何更新?state?中的對(duì)象

    React?18?如何更新?state?中的對(duì)象

    state 中可以保存任意類型的JavaScript值,包括對(duì)象,但是,不應(yīng)該直接修改存放在 React state 中的對(duì)象,這篇文章主要介紹了React?18更新state中的對(duì)象,需要的朋友可以參考下
    2023-08-08
  • 詳解React中傳入組件的props改變時(shí)更新組件的幾種實(shí)現(xiàn)方法

    詳解React中傳入組件的props改變時(shí)更新組件的幾種實(shí)現(xiàn)方法

    這篇文章主要介紹了詳解React中傳入組件的props改變時(shí)更新組件的幾種實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • 一文教你如何避免React中常見(jiàn)的8個(gè)錯(cuò)誤

    一文教你如何避免React中常見(jiàn)的8個(gè)錯(cuò)誤

    這篇文章主要來(lái)和大家一起分享在?React?開(kāi)發(fā)中常見(jiàn)的一些錯(cuò)誤,以及如何避免這些錯(cuò)誤,理解這些問(wèn)題背后的細(xì)節(jié),防止犯下類似的錯(cuò)誤,需要的可以參考下
    2023-12-12
  • 詳解React 和 Redux的關(guān)系

    詳解React 和 Redux的關(guān)系

    這篇文章主要為大家介紹了React 和 Redux的關(guān)系,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-11-11
  • create-react-app安裝出錯(cuò)問(wèn)題解決方法

    create-react-app安裝出錯(cuò)問(wèn)題解決方法

    這篇文章主要介紹了create-react-app安裝出錯(cuò)問(wèn)題解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09

最新評(píng)論

威信县| 清水县| 达州市| 东宁县| 盐津县| 岚皋县| 南开区| 昌宁县| 洛扎县| 神木县| 台东市| 玛多县| 阳信县| 漯河市| 南充市| 建平县| 环江| 临洮县| 新蔡县| 江都市| 神池县| 平凉市| 虞城县| 丹东市| 兴仁县| 高雄市| 桂林市| 龙胜| 吴桥县| 江永县| 西城区| 加查县| 佛冈县| 轮台县| 桂阳县| 栖霞市| 嵊泗县| 清流县| 台安县| 双流县| 富阳市|