1.子组件调用父组件函数方法
//父组件
let Father=()=>{
let getInfo=()=>{
}
return (
<div>
<Children
getInfo={getInfo}
/>
</div>
)
}
//子组件
let Children=(param)=>{
return (
<div>
<span onClick={param.getInfo}>调用父组件函数</span>
</div>
)
}
2.父组件条用子组件函数方法
//父组件
//需要引入useRef
import {useRef} from 'react'
let Father=()=>{
const childRef=useRef();
let onClick=()=>{
childRef.current.getInfo();
}
return (
<div>
<Children
ref={childRef}
/>
<span onClick={onClick}>调用子组件函数</span>
</div>
)
}
//子组件
//需要引入useImperativeHandle,forwardRef
import {useImperativeHandle,forwardRef} from 'react'
let Children=(ref)=>{
useImperativeHandle(ref, () => ({
getInfo:()=>{
//需要处理的数据
}
}))
return(
<div></div>
)
}
Children = forwardRef(Children);
3.子组件函数获取父组件的参数
1、封装的公共文件
// createContext.js文件
import { createContext } from "react";
const myContext = createContext(null);
export default myContext;
2、父组件
import React, { useState} from "react";
import Counter from './Counter'
import myContext from './createContext'
function App() {
const [count, setCount] = useState(0);
return (
<div>
{/* 提供器 */}
<myContext.Provider value={count}>
<Counter />
</myContext.Provider>
</div>
);
}
export default App;
3、子组件
import React, { useContext} from 'react';
import myContext from './createContext'
// 关键代码
function Counter() {
const count = useContext(myContext); // 得到父组件传的值
return (
<div>
<h4>我是子组件</h4>
<p>这是父组件传过来的值:{count}</p>
</div>
)
}
export default Counter;
版权声明:本文为weixin_45264424原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。