javascript - 在 React 中将组件作为 prop 传递并将它们称为 JSX 标签
问题描述
假设我有一个包装器组件:
// wrapper that renders component passed as a prop
const Component = (childrenComponent) => <div>{childrenComponent}</div>
我想做的是在某个页面中调用 Component ,例如:
import React from 'react'
const Page = () => {
const ChildrenComponent = () => <div>Children Component</div>
return <Component childrenComponent={ChildrenComponent} />
}
这将运作良好。我的问题是,鉴于道具名称应该是小写,我如何更改包装组件代码以能够以 JSX 方式调用 ChildrenComponent(而不是内联 {childrenComponent},同时满足在 PascalCase 中命名反应组件的要求:
// this will not work
const Component = (childrenComponent) => <div><childrenComponent /></div>
// this will work but the prop name isn't camelCase
const Component = (ChildrenComponent) => <div><ChildrenComponent /></div>
解决方案
你可以Component
这样设置:
const Component = props => {
return (
<div>{props.children}</div>
)
}
使用Component
:
<Component>
<ChildrenComponent/>
</Component>
来自文档的更多阅读材料
推荐阅读
- python - AttributeError: 'tuple' object has no attribute 'split' 任何建议都会很有帮助
- python - 使用 multiIndex 在 pandas 数据框中获取未排序的列级别
- apache-kafka - 消费者应用程序在从多个分区读取记录时导致重复
- ios - 将 ScrollView 与 StackView 一起用作子视图,并将 UIViews 用作 StackView 的子视图
- c++ - 可以在我第一次使用 std::distance 时使用一些清晰度
- c# - Visual Studio Code 找不到类
- django - 我可以限制 Django 的 Page not found 的显示吗?
- javascript - JavaScript 中的词搜索 II 算法
- javascript - gem-puzzle 的新桌子不会取代旧桌子
- javascript - Remarkable 为 < 创建 <