作为一个React世界的初学者,我想深入了解当我使用{this.props.children}
时会发生什么,以及在什么情况下会使用相同的{this.props.children}
。在下面的代码片段中,它的相关性是什么?
render() {
if (this.props.appLoaded) {
return (
<div>
<Header
appName={this.props.appName}
currentUser={this.props.currentUser}
/>
{this.props.children}
</div>
);
}
}
8条答案
按热度按时间46qrfjad1#
React文档说,你可以在表示"通用盒子"的组件上使用
props.children
,而这些组件事先并不知道它们的孩子。对我来说,这并没有真正澄清问题。我相信对一些人来说,这个定义非常有意义,但对我来说却没有。我对
this.props.children
的简单解释是 * 它用于显示调用组件时在开始标记和结束标记之间包含的任何内容。*下面是一个用于创建组件的无状态函数的示例。同样,由于这是一个函数,因此没有
this
关键字,因此只需使用props.children
此组件包含一个
<img>
,它接收一些props
,然后显示{props.children}
。每当调用此组件时,也将显示
{props.children}
,这只是对组件的开始和结束标记之间内容的引用。如果调用组件将完全打开和关闭标记
<Picture> </Picture>
,则可以在它们之间放置更多代码,而不是使用自关闭标记<Picture />
调用组件。这将
<Picture>
组件与其内容分离,使其更易于重用。参考:A quick intro to React’s props.children
1rhkuytd2#
我假设您在React组件的
render
方法中看到了这一点,如下所示 (编辑:您编辑的问题确实显示):children
是React组件的一个特殊属性,它包含组件内定义的任何子元素,例如上面Example
内的divs
。{this.props.children}
在渲染结果中包含这些子元素。...在什么情况下使用相同的
当您希望在呈现的输出中直接包含子元素时,可以这样做,而不做任何更改;如果你不知道就不会。
gfttwv5a3#
props.children
表示调用/呈现组件时开始标签和结束标签之间的内容:调用/调用/呈现
Foo
:u4vypkhs4#
这个问题得到了解答,但是需要添加一个优化示例。您可以通过内联分解只获取特定的属性,而不是整个props对象(这意味着您不必一直编写
props
)。你可以这样使用它:
最终结果将是HTML,呈现如下内容:
eqoofvh95#
Children是一个保留名称,这个特殊的子 prop 的值将始终是自定义组件的开始和结束标记之间的内容。因此,在本例中,开始和结束标记之间的内容,即该组件内的子 prop 上可用的内容。
nbewdwxp6#
对于一个孩子,有一个父,这是打开/关闭标签,因为它可以看到在React的官方例子,这是
FancyBorder
。h1
和p
是FancyBorder
的子级,您可以在the CodePen link上进行实际检查。pxy2qtax7#
这里需要注意的是,子组件是一个特殊的属性,用于将数据从父组件传递到子组件,但此数据必须包含在父组件的开始和结束标记中。这主要用于一些 Package 器组件中,通过这些组件,我们必须将数据传递到下一个组件,也必须传递其静态数据(在大多数情况下),因为对于动态数据,有另一种方式将 prop 传递给组件。
Here is the example
ztigrdn88#
在React中,props. children属性引用传递给React组件的子元素。
例如,在下面的代码中:
MyComponent组件有两个子组件:包含文本"Child1"的div元素和包含文本"Child2"的div元素。MyComponent组件可以使用props.children属性访问和呈现这些子元素。
例如,MyComponent组件可以如下所示呈现其子组件:
这将把两个div元素呈现为MyComponent组件的子元素。