reactjs - 使用 children 方法将父属性传递给子组件
问题描述
我有这样的情况:
我用内容调用父模态组件:
<Modal onClickOnYesButton ={() => console.log('test')}>
<ModalContent />
</Modal>
模态组件本身看起来像这样:
const Modal = ({ children }) => {
return(
<div>
{children}
</div>
)
}
因此,模态内容组件使用children
. 问题是我如何在不直接将其作为 ModalContent 属性放置的情况下传递onClickOnYesButton
给它?<ModalContent />
解决方案
我如何将 onClickOnYesButton 传递给而不将其直接作为 ModalContent 属性
如果您想将道具传递给孩子,您可以React.cloneElement(children, { ...props })
在Modal
.
即是这样的:
const Modal = ({ children, ...props }) => {
return(
<div>
{ React.cloneElement(children, { ...props }) }
</div>
)
}
React.cloneElement
尽管请注意,这仅适用于单个孩子,但如果您有更多,则需要将React.Children.map
.
推荐阅读
- javascript - 如何将 github OAuth 数据发送给客户端?
- regex - 使用 Perl 正则表达式替换引号封装字符串中的引号
- scala - 为类型类定义 Monad、Applicative 和 Functor 实例
- swift - 使用多种单元格类型重构 TableView
- java - 在 Android 上动画约束布局更改的最佳方式
- python - 如何使用多个嵌套的 for 循环加速 python 2 程序
- ms-access - 如何在不丢失setfocus的情况下将光标设置到文本框的末尾?
- c# - 在 C# 中使用接口实例化类
- python - 如何将对象实例移动到另一个类?
- java - 使用 Java Streams 和 Scanners 时出现意外行为