reactHooks的组件通信
父组件调用子组件的方法
// 父组件 import React, { useEffect, useRef, useState } from 'react'; import StopModal from './components/stopModal'; const DirectiveStop = (props: any) => { const stopModalRef = useRef(); // 点击调用子组件的方法 const handleClick = (val) => { stopModalRef.current.show(stopDisabled); } // 更新表格数据 const callbackUpdate = () => { }; return ( <>父组件{/* 这是第一种写法 */}{/* 这是第二张写法 官方案例 */} > ); }; export default DirectiveStop;
// 子组件 import React, { useEffect, useRef, useState, useImperativeHandle, forwardRef } from 'react'; const Son = (props: any ,ref: any) => { const { stopModalRef, callbackUpdate } = props // ---------------------------------------------------------------------- // 对应第一张方法 const show = (val) => { console.log(val); } stopModalRef.current = { show } // ---------------------------------------------------------------------- // 对应的第二张方法 useImperativeHandle(ref, () => ({ show(val) { console.log(val); } })) return ( <>子组件> ); }; export default Son; // 对应的第一种写法 // export default forwardRef(Son) // 对应的第二种写法,必须是要 forwardRef 包裹住