javascript - 将道具传递给孩子反应时出现未定义的错误
问题描述
我正在关注这个问题来学习如何将道具传递给孩子。不过,我在自己的组件中遇到了错误。
组件 1,DataWrapper:
export default function DataWrapper(props) {
return (
<DashboardWrapper>
{cloneElement(props.children, { test: "hello there" })}
</DashboardWrapper>
);
}
组件 2,迁移:
export default function Migration(props) {
console.log("props.test");
console.log(props.test);
return (
<DataWrapper>
<div>hello</div>
</DataWrapper>
);
}
我正在尝试将test
道具从DataWrapper
to 传递给Migration
. 但是,我undefined
在运行时得到了console.log(props.test);
. 我是否test
错误地传递了道具?我必须怎么做才能成功地将道具传递给孩子?
解决方案
您的结构表明您包括
<Migration>
<DataWrapper>
<DashboardWrapper>
cloneElement()
</DashboardWrapper>
</DataWrapper>
</Migration>
所以外部Migration
对象不会从 DashboardWrapper 函数 cloneElement() 中获得任何道具。
如果您的结构不同,请尝试在您的问题中详细说明完整的结构。
推荐阅读
- jenkins - sonar.coverage.exclusions 和 sonar.exclusions 不排除文件
- c# - 在 UWP 中使用模糊效果绘制图像未正确设置图像大小
- ios - 点击购买按钮后未出现“需要登录”弹出窗口
- php - 在 WC 3.0+ 的变体产品页面中显示正常价格和销售价格下的折扣百分比
- vhdl - 如何使用存储在 BRAM 中的数据初始化 STD_LOGIC_VECTOR(15 down to 0) 数组
- ruby-on-rails - Rails 6 - 常量 ActionController::InvalidAuthenticityToken
- c# - XML 响应中数组的反序列化
- javascript - 反应状态不会重新渲染
- xamarin.forms - 如何创建溢出菜单(不在工具栏上) - Xamarin.Forms
- sql-server - SSIS 包更新 SQL 表