Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不传递子组件的情况下呈现子组件?_Javascript_Reactjs - Fatal编程技术网

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(){ 返回( ); }
如果您仔细想想,总是需要传递孩子,但他们可能是指将他们声明为输入道具?如果您使用的是箭头函数,您应该始终将其声明为输入,因为箭头函数没有
上下文,因此没有其他方法可以执行此操作,您显示的第一个代码块就是正确的执行方法。