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

父组件向子组件传递函数异常:子组件接收的函数为空对象

问题解决:React子组件无法正确接收父组件传递的函数

你的核心问题是React函数组件的props接收方式错误:

React函数组件的所有props都会被打包成单个对象作为第一个参数传入,而非分开的多个独立参数。你当前的写法中:

export const VaultEntry = (contactInfo, runServerless) => {
  console.log(runServerless)
}
  • 第一个参数contactInfo其实是包含contactInfo和runServerless两个属性的完整props对象
  • 第二个参数runServerless因无对应传入值,实际为undefined(你看到的空对象是环境相关的异常表现)

修正方法

有两种正确的接收方式:

方式1:解构props对象(推荐)

直接从props对象中解构出需要的属性:

export const VaultEntry = ({ contactInfo, runServerless }) => {
  console.log(runServerless);
  // 此处可正常调用父组件传递的函数
};

方式2:接收完整props对象后访问属性

若需使用多个props,可先接收完整props对象,再通过点语法访问属性:

export const VaultEntry = (props) => {
  console.log(props.runServerless);
  // 使用props.contactInfo获取另一个传入属性
};

额外说明

父组件中typeof(runServerless)显示为array,建议确认Provider提供的runServerless是否被包装在数组中(比如使用useState或其他状态管理的数组返回形式)。如果是,需先从数组中取出函数再传递给子组件,示例:

// 假设runServerless是数组,比如const [runServerless] = useContext(...)
<VaultEntry contactInfo={userData} runServerless={runServerless[0]}/>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 11:06:05