react-native?父函數(shù)組件調(diào)用類子組件的方法(實例詳解)
react-native 父函數(shù)組件調(diào)用類子組件的方法,代碼如下所示:
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>)
}
}補充:下面看下React 函數(shù)式組件之父組件調(diào)用子組件的方法
前言:
最近做一個React項目,所有組件都使用了函數(shù)式組件,遇到一個父組件調(diào)用子組件方法的問題,讓我好一陣頭疼。
我們都知道,React 中子組件調(diào)用父組件方法,使用 props 傳遞過來就可以在子組件中使用。但是父組件如何調(diào)用子組件方法呢?請看下面代碼:
第一步:
在父組件中,使用 useRef 創(chuàng)建一個 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>
)
})第三步:
此時,在父組件中就可以隨心所欲的調(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)用類子組件的方法的文章就介紹到這了,更多相關(guān)react-native父函數(shù)組件調(diào)用類子組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
React Native AsyncStorage本地存儲工具類
這篇文章主要為大家分享了React Native AsyncStorage本地存儲工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10
關(guān)于useEffect的第二個參數(shù)解讀
這篇文章主要介紹了關(guān)于useEffect的第二個參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
react如何使用mobx6動態(tài)加載數(shù)據(jù)
MobX是一個強大而簡單的狀態(tài)管理工具,它可以幫助我們更好地組織和管理React應(yīng)用程序中的數(shù)據(jù)流,本文給大家介紹react如何使用mobx6動態(tài)加載數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧2024-02-02
ReactJS應(yīng)用程序中設(shè)置Axios攔截器方法demo
這篇文章主要為大家介紹了ReactJS應(yīng)用程序中設(shè)置Axios攔截器方法demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12

