我可以在 ReactJS 中排除原始元素的子元素吗?
Can I transclude the children of the original element in ReactJS?
如果我有以下 HTML:
<div id="myreactcomponent">
<h1>Headline</h1>
<p>Content</p>
</div>
我将 ReactJS 组件初始化为 #myreactcomponentdiv,我可以以某种方式渲染组件内的 h1 和 p 元素吗?像这样:
return (
<Header></Header>
{ place h1 and p here }
<Footer></Footer>
);
在 ReactJS 中是否有一个选项?
你可以检查这个JSFiddle以查看我的问题的演示。
对于熟悉 Angular 的人:我在 React 中搜索 AngularJS 指令的 transclude 选项和 <ng-transclude/>
标签。
对于熟悉 Polymer 的人:我在 React 中搜索相当于 <content/>
标签的内容。
更新
我尝试了 this.props.children
属性,但据我了解,这仅在初始 HTML 已经在 React 组件中时才有效。我确实需要渲染我最初渲染第一个 React 组件的元素的子元素。
更新 2
在我的情况下,将 HTML 移动到组件的初始化中(如 JSFiddle 的更新所示)不是一个选项,因为呈现初始 HTML 和 React 组件的系统不同。
像这样的东西...
..
render(){
return (
<Header></Header>
<span dangerouslySetInnerHTML={{__html:'content'}}></span>
<Footer></Footer>
)
}
..
var content = '<h1>This is a header</h1><p>This is some para..</p>'
这就是你所指的吗...您可以在此处阅读有关此内容的更多信息。
是的,要执行此操作,请使用this.props.children
.
例如,如果你有一个 React 组件,如下所示:
<MyReactComponent>
<h1>Headline</h1>
<p>Content</p>
</MyReactComponent>
您可以通过在MyReactComponent
render
中执行此操作来h1
和p
传输子元素:
return (
<Header></Header>
{ this.props.children }
<Footer></Footer>
);
是的,这是可能的。
在反应类中,你有this.props.children
所以在父组件中:
function render() {
return <MyComponent><div class="my-child">My text</div></MyComponent>;
}
然后在子组件中
function render() {
return <div class="child-wrapper">{this.props.children}</div>;
}
https://facebook.github.io/react/tips/children-props-type.html
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- JQuery:使用clone()生成的元素不采用原始的事件属性
- 如何显示替换为后的原始元素
- jQuery's clone()函数扰乱了原始元素'的属性
- 将jQuery$(this)转换为原始元素
- React警告:ReactMount:根元素已从其原始容器中删除.新容器:[object HTMLDivElement]
- 正在将DOM元素转换为原始HTML字符串
- 移动|克隆元素并从原始位置移除
- 滚动后,检测元素何时返回到原始位置
- 从第三方原始javascript控制Angular JS元素
- html5可拖动隐藏原始元素
- AngularJS指令,该指令使用模板中的原始元素类型
- 使用 .on 获取原始元素
- 如何获取固定元素的“原始”偏移量().top
- 我可以在 ReactJS 中排除原始元素的子元素吗?
- 独立于原始元素复制元素
- 确定元素是否由 JS 添加,还是原始 HTML 文档 *OR* 检测脚本何时通过 InnerHTML 更新节点
- 如何从事件中获取原始元素
- 获取聚合物元素的原始 HTML 代码
- 旋转元素而不返回到原始状态