reactjs - 为什么 TypeScript 中 Material-ui Button 元素的 React.createRef() 不能正常工作?
问题描述
使用 React v16.13.1 我有以下组件类,其中包含一个 Material-UI Button 组件和一个 RefObject 来访问按钮元素。
class Search extends React.Component<any, any>{
constructor(props: any) {
super(props)
this.streetViewRef = React.createRef();
}
private streetViewRef: React.RefObject<Button>;
}
对于以下 Button 元素
<Button ref={this.streetViewRef} size="sm" variant="primary" block >Street View</Button>
但是,会显示以下 TypeScript 错误。
需要改变什么来纠正这个错误?
解决方案
看看这里https://www.selbekk.io/blog/2020/05/forwarding-refs-in-typescript/
键入 forwardRef 组件的正确方法是:
type Props = {};
const Button = React.forwardRef<HTMLButtonElement, Props>(
(props, ref) => <button ref={ref} {...props} />
);
推荐阅读
- node.js - ReactJs - 检索和下载 ZIP 文件,调用 api nodeJS 的结果
- python - 切换到 GPU 后 TF 模型不再预测
- html - 在 R/Rmarkdown 上使用多个 html 文件创建报告
- mongodb - mongodb:复杂的嵌套聚合
- php - Php - 使用 mysqli 中的 bind_params 更新列的变量数组
- process - 为什么会显示“ERROR:HDLCompiler:806 -”C:\Users\dell\Desktop\EE240\lab5\deniyoruz\eponentmunber.vhd” 第 26 行:“end”附近的语法错误
- javascript - Mongoose 一对多关系
- kotlin - 如何在kotlin的列表中追加列表
- flutter - 如何在 Flutter 中绘制此折线图
- c - 如何在文件操作中将表格转换为文本文件?