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

如何为子组件的函数类型props设置默认值?

解决React函数组件函数类型Prop的默认值与条件执行问题

针对你遇到的问题,有两种直接的解决思路:

1. 为函数类型Prop设置默认值

在子组件解构Prop时,直接给setState指定一个空函数作为默认值,这样即使父组件不传这个Prop,调用时也不会报错:

const A = () => {
  const setState = () => {
    console.log("A fire");
  };

  return <Child setState={setState} />;
};

const B = () => {
  return <Child />;
};

const Child = ({ setState = () => {} }) => {
  setState();
  return <div>hello</div>;
};

如果需要兼容更旧的写法,也可以通过defaultProps定义默认值(不过现在更推荐上面的解构赋值方式):

const Child = ({ setState }) => {
  setState();
  return <div>hello</div>;
};

Child.defaultProps = {
  setState: () => {}
};

2. 仅当函数存在时才执行

在调用setState前先判断它是否为有效函数,或者使用可选链操作符简化判断:

方式一:条件判断

const Child = ({ setState }) => {
  if (typeof setState === 'function') {
    setState();
  }
  return <div>hello</div>;
};

方式二:可选链操作符

const Child = ({ setState }) => {
  setState?.();
  return <div>hello</div>;
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:05:28