要调用子组件中的函数,需要使用ref属性来获取子组件的引用,并通过该引用调用子组件中的函数。
首先,在父组件中定义一个ref:
import React, { useRef } from 'react';
function ParentComponent() {
const childRef = useRef();
const handleClick = () => {
childRef.current.functionName(); // 调用子组件函数
};
return (
<div onClick={handleClick}>11</div>
<AmenityLabelsSearch ref={childRef} tabsTitle={tabsTitle} tabsCode={tabsCode} setAmenSerachData={setAmenSerachData} />
);
}
export default ParentComponent;
然后,在子组件中接收并使用该ref:
import React ,{ forwardRef } from 'react';
const AmenityLabelsSearch = forwardRef((props, ref) => {
// 子组件代码...
// 定义需要暴露给父组件调用的函数
const functionName = () => {
// 执行相应操作
alert('是执行了');
};
// 将函数绑定到ref上,使其可以在父组件中被调用
React.useImperativeHandle(ref, () => ({
functionName,
}));
// 子组件代码...
});
export default AmenityLabelsSearch;
现在,当点击父组件中的<div>时,会触发父组件的handleClick()函数,在该函数中通过childRef.current.functionName()来调用子组件的相应函数。
内容由零声教学AI助手提供,问题来源于学员提问




