react forwardRef
时间: 2024-12-02 19:06:53 浏览: 24
`forwardRef` 是 React 中的一个高级特性,它允许你在函数组件内部将引用传递给外部(通常是一个原生 DOM 元素或自定义组件)的 `ref` 属性。这在你需要访问被包装元素的直接引用,但又不想暴露这个引用作为组件的 props 的时候非常有用。
在传统的函数组件中,你可以通过 `ref` 直接获取到 DOM 或组件实例,但是当你要将 ref 绑定到外部库提供的组件上时,例如 `React.forwardRef` 配合第三方库的按钮组件,你可以这样做:
```jsx
import React, { forwardRef } from 'react';
import MyCustomButton from 'path/to/custom/button';
const EnhancedButton = forwardRef((props, ref) => {
return (
<MyCustomButton ref={ref} {...props}>
Click me!
</MyCustomButton>
);
});
// 使用时
function App() {
const buttonRef = React.useRef(null);
return (
<EnhancedButton ref={buttonRef}>I'm enhanced!</EnhancedButton>
);
}
```
在这里,`EnhancedButton` 接收并传递了 `ref`,同时保留了对内部 `MyCustomButton` 的控制权。当你需要在 `App` 中操作按钮的时候,可以直接通过 `buttonRef.current` 来访问。
阅读全文