在React中封装组件并设置引用可以通过两种方法来实现。
方法一:使用回调函数
以下是一个示例代码:
// 封装的组件
import React, { useRef } from 'react';
const CustomComponent = ({ setRef }) => {
const elementRef = useRef(null);
// 将引用传递给父组件
setRef(elementRef);
return <div ref={elementRef}>Hello World</div>;
};
// 父组件
import React, { useRef } from 'react';
const ParentComponent = () => {
const childRef = useRef(null);
// 在回调函数中接收引用
const setChildRef = (ref) => {
childRef.current = ref;
};
// 在父组件中访问子组件中被引用的元素
const handleClick = () => {
if (childRef.current) {
console.log(childRef.current);
}
};
return (
<div>
<CustomComponent setRef={setChildRef} />
<button onClick={handleClick}>Access Child Element</button>
</div>
);
};
方法二:使用React.forwardRef
以下是一个示例代码:
// 封装的组件
import React, { forwardRef } from 'react';
const CustomComponent = forwardRef((props, ref) => (
<div ref={ref}>Hello World</div>
));
// 父组件
import React, { useRef } from 'react';
const ParentComponent = () => {
const childRef = useRef(null);
// 在父组件中访问子组件中被引用的元素
const handleClick = () => {
if (childRef.current) {
console.log(childRef.current);
}
};
return (
<div>
<CustomComponent ref={childRef} />
<button onClick={handleClick}>Access Child Element</button>
</div>
);
};
以上是在React中封装组件并设置引用的两种方法。您可以根据实际需要选择适合您项目的方法。
领取专属 10元无门槛券
手把手带您无忧上云