reactjs - 分配此 onClick 功能的正确方法?
问题描述
我有一些下游代码将名为 OnClick 的对象属性设置为函数。TypeScript 中的 OnClick 属性定义为 Function | 不明确的。我正在尝试像这样绑定到组件中的 OnClick 道具:
onClick={x.OnClick}
但是 TypeScript 编译器不喜欢 x.OnClick 可能未定义的事实。所以我尝试绑定到这样的本地空函数:
onClick={x.OnClick || this.doNothing}
但这会返回以下内容:
TS2322 (TS) 类型 'Function' 不可分配给类型 '(event: MouseEvent<HTMLAnchorElement, MouseEvent>) => void'。类型 'Function' 不匹配签名 '(event: MouseEvent<HTMLAnchorElement, MouseEvent>): void'
知道如何更新我的代码来处理这种情况吗?
解决方案
我猜你的函数this.doNothing
看起来像这样
const doNothing = () => {}
Typescript 抱怨,因为它期望函数具有事件类型的参数。将事件属性传递给函数以绕过此类要求
const doNothing = (event: MouseEvent) => {}
Typescript 可能会抱怨该函数是空的。
推荐阅读
- apache-kafka - Broken Pipe 错误后 Kafka 不会重新加入集群
- c - 如何在链表中访问下一个时修复分段错误错误?
- mysql - 我应该使用哪些数据类型?
- python - 将python列中以毫秒为单位的字符串时间转换为时间戳
- python - Numpy 2-D & 3-D 矩阵“行”乘法
- python - 如何计算 pyspark 数据帧中每两个键之间的相似度?
- gatsby - Gatsby 的 Graphql 说“无法在类型“Query”上查询字段“allMarkdownRemark”并且不会出现 gatsby-transformer-remark
- reactjs - 没有在反应中显示图像上传字段
- python - 如何构建一个返回 txt 中匹配的元素的函数。文件和字典
- angular - Angular 获得意外/无法解释的空引用