Javascript 如何在不传递子组件的情况下呈现子组件?
我有一个组成部分:Javascript 如何在不传递子组件的情况下呈现子组件?,javascript,reactjs,Javascript,Reactjs,我有一个组成部分: const PapeConainer=({children})=>{ 返回( {儿童} ); } 但在合并请求中,我得到了一条注释,我不需要传递子项,因为函数已经有了它。因此,我的任务是在不通过它的情况下渲染儿童。我找不到这方面的任何信息 比如: const PapeConainer=()=>{ 返回( {magic.children} ); } 实际上,你不能这样做,你必须从道具中获取children对象,正如你所说: const PapeContainer = ({ch
const PapeConainer=({children})=>{
返回(
{儿童}
);
}
但在合并请求中,我得到了一条注释,我不需要传递子项,因为函数已经有了它。因此,我的任务是在不通过它的情况下渲染儿童。我找不到这方面的任何信息
比如:
const PapeConainer=()=>{
返回(
{magic.children}
);
}
实际上,你不能这样做,你必须从道具中获取children对象,正如你所说:
const PapeContainer = ({children}) => {
return (
<div //some classes and other stuff>
{children}
</div>
);
}
const PapeContainer=({children})=>{
返回(
{儿童}
);
}
我认为该评论想说的是,您不必在父组件中将children作为名为“children”的特定道具传递,如下所示:
<PapeContainer //some classes and other stuff
children={someChildren}
/>
<PapeContainer //some classes and other stuff>
{someChildren}
/>
这是没有意义的,因为“children”是React的一个特殊属性,它包含组件中定义的任何子元素。因此,您没有显式地传递道具,而是将子内容放在父标记内,如下所示:
<PapeContainer //some classes and other stuff
children={someChildren}
/>
<PapeContainer //some classes and other stuff>
{someChildren}
/>
{someChildren}
/>
实际上你不能那样做。您能够做的是将子项作为组件道具或层次结构子项传递,如下所示(这是相同的组件道具,但使用另一个代码实现):
//子容器组件
函数ReceiveChild({children}){
返回(
{儿童}
);
}
//DOM元素层次结构方法组件
函数PassChild(){
返回(
孩子们
);
}
//组件道具方法组件
函数PassChild2(){
返回(
);
}
如果您仔细想想,总是需要传递孩子,但他们可能是指将他们声明为输入道具?如果您使用的是箭头函数,您应该始终将其声明为输入,因为箭头函数没有此上下文,因此没有其他方法可以执行此操作,您显示的第一个代码块就是正确的执行方法。