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

React Bootstrap调用Modal报confirm is not a function如何解决

报错根因

Uncaught TypeError: confirm is not a function 是因为你混淆了不同组件库的API:React Bootstrap 提供的Modal组件本身没有confirm静态方法,Modal.confirm()是Ant Design组件库的Modal专属命令式调用方法,你从react-bootstrap的Modal里解构confirm拿到的是undefined,调用自然会报类型错误。

另外你的代码还存在两个隐藏问题:

  • 自定义函数命名为delete,和JS原生的delete操作符重名,容易引发意料之外的解析问题
  • confirm调用里用到的message变量没有提前声明/传参,后续就算解决了confirm的问题也会触发引用错误
修复方案

你可以根据项目需求二选一:

方案1:用React Bootstrap原生能力实现确认弹窗(推荐,无额外依赖)

自己维护弹窗显隐状态,抽离通用确认弹窗组件即可,参考实现:

import { useState } from 'react';
import { Button, Modal } from "react-bootstrap";
import { AiOutlineExclamationCircle } from "react-icons/ai";

// 可抽离到公共组件目录全局复用
function ConfirmModal({ visible, onCancel, onOk, title, content }) {
  return (
    <Modal show={visible} onHide={onCancel} centered>
      <Modal.Header closeButton>
        <Modal.Title>
          <AiOutlineExclamationCircle style={{ marginRight: 8, color: '#faad14' }} />
          {title}
        </Modal.Title>
      </Modal.Header>
      <Modal.Body>{content}</Modal.Body>
      <Modal.Footer>
        <Button variant="secondary" onClick={onCancel}>取消</Button>
        <Button variant="danger" onClick={onOk}>确认</Button>
      </Modal.Footer>
    </Modal>
  )
}

// 业务代码中使用
export default function BusinessComponent() {
  const [confirmVisible, setConfirmVisible] = useState(false);

  const handleDelete = () => {
    // 此处编写实际删除逻辑
    console.log('执行删除操作');
    setConfirmVisible(false);
  };

  return (
    <>
      <Button variant="danger" onClick={() => setConfirmVisible(true)}>
        Delete
      </Button>
      <ConfirmModal
        visible={confirmVisible}
        onCancel={() => setConfirmVisible(false)}
        onOk={handleDelete}
        title="Do you Want to delete this message?"
        content="删除后数据无法恢复,请确认操作"
      />
    </>
  )
}

方案2:引入支持命令式调用的适配库

如果你不想手动维护弹窗的显隐状态,希望直接用confirm({...})的写法调用,可以引入专门适配React Bootstrap的命令式弹窗扩展包,不建议为了单个API引入整个Ant Design,会无端增加项目打包体积。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 03:48:24