react-native?父函數(shù)組件調(diào)用類(lèi)子組件的方法(實(shí)例詳解)
react-native 父函數(shù)組件調(diào)用類(lèi)子組件的方法,代碼如下所示:
import React, {Component} from 'react'; import {Text, View, TouchableOpacity} from 'react-native'; // 父 let child onRefbbb = (ref) => { child = ref } clickccc = () => { child.myName() } const Parent =()=> { return( <View> <Child onRefaaa={onRefbbb} /> <TouchableOpacity onPress={()=>clickccc()}> <Text>onClick</Text> </TouchableOpacity> </View> ) } export default Parent // 子 class Child extends Component { componentDidMount(){ this.props.onRefaaa(this) } myName = () =>{ alert(11111111111111) } render() { return (<View></View>) } }
補(bǔ)充:下面看下React 函數(shù)式組件之父組件調(diào)用子組件的方法
前言:
最近做一個(gè)React項(xiàng)目,所有組件都使用了函數(shù)式組件,遇到一個(gè)父組件調(diào)用子組件方法的問(wèn)題,讓我好一陣頭疼。
我們都知道,React 中子組件調(diào)用父組件方法,使用 props 傳遞過(guò)來(lái)就可以在子組件中使用。但是父組件如何調(diào)用子組件方法呢?請(qǐng)看下面代碼:
第一步:
在父組件中,使用 useRef 創(chuàng)建一個(gè) ref
import { useRef } from 'react' // 父組件中代碼 const FCom = () => { const cRef = useRef(null); return ( <div> <ChildCom ref={cRef} /> </div> ) }
第二步:
子組件中代碼:(使用了 forwardRef,useImperativeHandle)
import { forwardRef, useImperativeHandle } from 'react' const ChildCom = forwardRef(({ // 這里是一些props參數(shù) }, ref) => { useImperativeHandle(ref, () => ({ getData: getData, otherFun: otherFun })) function getData() { // to do something } function otherFun() { console.log('這是其他方法') } return ( <div>子組件</div> ) })
第三步:
此時(shí),在父組件中就可以隨心所欲的調(diào)用子組件中的方法了!
import { useRef } from 'react' // 修改父組件中代碼 const FCom = () => { const cRef = useRef(null); const handleClick = () => { cRef.current && cRef.current.getData() } return ( <div> <ChildCom ref={cRef} /> </div> ) }
到此這篇關(guān)于react-native 父函數(shù)組件調(diào)用類(lèi)子組件的方法的文章就介紹到這了,更多相關(guān)react-native父函數(shù)組件調(diào)用類(lèi)子組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
React Native AsyncStorage本地存儲(chǔ)工具類(lèi)
這篇文章主要為大家分享了React Native AsyncStorage本地存儲(chǔ)工具類(lèi),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10react實(shí)現(xiàn)每隔60s刷新一次接口的示例代碼
本文主要介紹了react實(shí)現(xiàn)每隔60s刷新一次接口的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06關(guān)于useEffect的第二個(gè)參數(shù)解讀
這篇文章主要介紹了關(guān)于useEffect的第二個(gè)參數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09react如何使用mobx6動(dòng)態(tài)加載數(shù)據(jù)
MobX是一個(gè)強(qiáng)大而簡(jiǎn)單的狀態(tài)管理工具,它可以幫助我們更好地組織和管理React應(yīng)用程序中的數(shù)據(jù)流,本文給大家介紹react如何使用mobx6動(dòng)態(tài)加載數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧2024-02-02React Hook中useState更新延遲問(wèn)題及解決
這篇文章主要介紹了React Hook中useState更新延遲問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08ReactJS應(yīng)用程序中設(shè)置Axios攔截器方法demo
這篇文章主要為大家介紹了ReactJS應(yīng)用程序中設(shè)置Axios攔截器方法demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12React項(xiàng)目中decorators裝飾器報(bào)錯(cuò)問(wèn)題解決方案
這篇文章主要介紹了React項(xiàng)目中decorators裝飾器報(bào)錯(cuò),本文給大家分享問(wèn)題所在原因及解決方案,通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01