我不明白这是什么意思:
const FancyButton = React.forwardRef((props, ref) => (
<button ref={ref} className="FancyButton">
{props.children}
</button>
));
如果我能做到这一点:
function FancyButton(props) {
return (
<button className="FancyButton" ref={props.ref}>
{props.children}
</button>
);
}
最佳答案
从文件
你的问题
您可以选择第一种方法或第二种方法
例子
// EmailInput wraps an HTML `input` and adds some app-specific styling.
const EmailInput = React.forwardRef((props, ref) => (
<input ref={ref} {...props} type="email" className="AppEmailInput" />
));
class App extends Component {
emailRef = React.createRef();
render() {
return (
<div>
<EmailInput ref={this.emailRef} />
<button onClick={() => this.onClickButton()}>
Click me to focus email
</button>
</div>
);
}
// `this.emailRef.current` points to the `input` component inside of EmailInput,
// because EmailInput is forwarding its ref via the `React.forwardRef` callback.
onClickButton() {
this.emailRef.current.focus();
}
}
对我而言,fowardRef并不需要太多,因为我们可以始终使用另一种方法来传递ref
您可以在here上阅读更多内容
关于javascript - react forwardRef的含义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56751609/