You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React+TypeScript确认组件编译报错:no-unused-expressions求助

问题排查与修复方案

嘿,我一眼就揪出你代码里的问题啦!你遇到的no-unused-expressions编译错误,核心原因是没有正确调用传入的回调函数。

错误根源

看一下你Confirm.tsx里的这两个处理函数:

private handleOkClick = () => {
  this.props.onOkClick; // 这里只是引用了函数,没有执行它!
}

private handleCancelClick = () => {
  this.props.onCancelClick; // 同样的问题
}

你只是写了this.props.onOkClick,这仅仅是对函数的引用,并没有实际触发这个函数执行。ESLint的no-unused-expressions规则会把这种“只引用不执行”的表达式判定为无用代码,所以抛出了错误。

修复方法

只需要给这两个回调函数加上(),让它们执行起来就行:

private handleOkClick = () => {
  this.props.onOkClick();
}

private handleCancelClick = () => {
  this.props.onCancelClick();
}

额外优化建议

其实你完全可以省略这两个中间的处理函数,直接把props里的回调绑定到按钮的onClick事件上,这样代码更简洁,还能避免这类低级错误:

<div className="confirm-buttons-container">
  <button className="confirm-cancel" onClick={this.props.onCancelClick}>
    {this.props.cancelCaption}
  </button>
  <button className="confirm-ok" onClick={this.props.onOkClick}>
    {this.props.okCaption}
  </button>
</div>

这样修改之后,你的组件应该就能正常编译,点击按钮也能触发对应的回调啦!

内容的提问来源于stack exchange,提问作者BennKingy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:29:41