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

回调函数未执行:React按钮点击后页面跳转逻辑失效排查

按钮点击后回调函数未执行的排查与修复

核心问题出在FullscreenError组件传递给NextStageButton的onClick回调里——你只是写了onContinue,但没有调用这个函数。

问题分析

当按钮被点击时,NextStageButton的onClickHandler会执行,它会调用你传入的箭头函数:

() => {
  fireButtonClick(CONTROLS.CONTINUE, { mode: analytics.mode })
  onContinue // 这里只是引用函数,没有执行!
}

这里的onContinue只是函数的引用,没有加括号()触发执行,所以你的modalSkipClicked异步函数根本没被调用,自然看不到TEST HERE的日志。而按钮的加载spinner正常,是因为onClickHandler里的setButtonPressed(true)确实执行了,不影响UI状态,但回调逻辑没走。

修复代码

把onContinue改成onContinue(),如果需要等待异步函数执行完成,可以把箭头函数声明为async并加await:

{!isBlocking && (
  <NextStageButton
    dataTestId="warning-button"
    onClick={async () => {
      fireButtonClick(CONTROLS.CONTINUE, {
        mode: analytics.mode
      })
      await onContinue() // 调用函数,异步场景下用await确保执行完成
    }}
    copy={
      isSingleCartridgeOrCounterfeit
        ? getText('common.continue')
        : getText('common.ok')
    }
  />
)}

额外检查点

  1. 在FullscreenError组件里先打印console.log(onContinue),确认这个函数确实被正确传递,不是undefined
  2. 确认modalSkipClicked函数本身没有语法错误,比如loadNextPage、CALIBRATION、RESULT.DECLINED这些变量都已正确定义

内容的提问来源于stack exchange,提问作者Bruno Eduardo Rosselli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 17:57:40