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

React中在自定义Modal组件内传递Button组件Props的语法问题

正确传递buttonAdditionalProps的语法

首先注意拼写:你定义的Prop是buttonAdditionalProps,但示例里写成了buttonAddionalProp(少了一个d),这是第一个要修正的点。

正确传递方式

因为buttonAdditionalProps的类型是ButtonProps,本质是Button组件接收的props集合,所以直接传递一个包含对应属性的对象即可,不需要嵌套Button相关结构:

示例1:传递禁用状态

<Modal
  id="123"
  primaryAction={handleClose}
  buttonAdditionalProps={{ disabled: true }}
></Modal>

示例2:同时传递禁用状态和尺寸

<Modal
  id="123"
  primaryAction={handleClose}
  buttonAdditionalProps={{ disabled: true, size: 'large' }}
></Modal>

示例3:根据变量动态控制

如果禁用状态由某个变量控制:

const isDisabled = true;

<Modal
  id="123"
  primaryAction={handleClose}
  buttonAdditionalProps={{ disabled: isDisabled }}
></Modal>

Modal组件内部的使用方式

在Modal组件里,需要把buttonAdditionalProps展开传递给内部的Button组件,才能将这些属性应用到按钮上:

// Modal组件内部代码
import Button from './Button';

const Modal = ({ id, primaryAction, buttonAdditionalProps }) => {
  return (
    <div className="modal">
      {/* 其他Modal内容 */}
      <Button
        onClick={primaryAction}
        {...buttonAdditionalProps} // 展开传递额外的Button props
      >
        确认
      </Button>
    </div>
  );
};

你之前写法错误的原因

你尝试的buttonAddionalProp = {Button={disabled = {true}}}这类写法是错误的,因为buttonAdditionalProps需要的是Button组件的props对象,不是嵌套一个Button相关结构。直接传入符合ButtonProps类型的键值对对象即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:05:21