react父组件调用子组件内部的dom或方法
在 React 中,通过 React.forwardRef 和 useImperativeHandle 可以实现将父组件的 ref 转发给子组件,从而引用子组件的 DOM 或方法。以下是实现的步骤和代码示例:
import React, { forwardRef, useImperativeHandle, useRef } from "react";
const Child = forwardRef((props, ref) => {
const inputRef = useRef();
//暴露给父组件的方法
useImperativeHandle(ref, () => ({
focus: () => {
inputRef.current.focus();
},
clear: () => {
inputRef.current.value = "";
},
}));
return <input ref={inputRef} type="text" placeholder="Enter something" />;
});
function Parent() {
const childRef = useRef();
const handleFocus = () => {
childRef.current.focus();
};
const handleClear = () => {
childRef.current.clear();
};
return (
<div>
<Child ref={childRef} />
<button onClick={handleFocus}>Focus Input</button>
<button onClick={handleClear}>Clear Input</button>
</div>
);
}
export default Parent;

浙公网安备 33010602011771号