Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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
Reactjs 在react组件中使用{children}_Reactjs - Fatal编程技术网

Reactjs 在react组件中使用{children}

Reactjs 在react组件中使用{children},reactjs,Reactjs,我是一个新的反应,我在这里有一个非常基本的问题。在下面的代码中,{children}有什么用途 const Store = ({children}) => { const [state, setState] = useState(initialState) return( <Context.Provider value={[state, setState]}> {children} </Context

我是一个新的反应,我在这里有一个非常基本的问题。在下面的代码中,{children}有什么用途

const Store = ({children}) => {
    const [state, setState] = useState(initialState)
    return(
        <Context.Provider value={[state, setState]}>
            {children}
        </Context.Provider>
    )
}
conststore=({children})=>{
常量[状态,设置状态]=使用状态(初始状态)
返回(
{儿童}
)
}

将组件作为一个整体传递。在你的情况下,如果你写

<Store>
  <Header/>
<Footer/>
//any data here
</Store>

//这里有数据吗
它将自动放置在此处:

<Context.Provider value={[state, setState]}>
            {children} <-here you do need to define again
        </Context.Provider>


{children}children是一个保留字,返回在开始和结束组件元素之间传递的所有子元素。 有关更多信息,请访问此页面:
子组件是嵌套在组件的打开和关闭标记之间的组件。例如:

 <Header>
 <Menu />
 </Header>

在这种情况下,Menu将是Header的子菜单


在代码中稍微复杂一点的示例中,子对象将是存储中嵌套的任何对象。在本例中,您使用的是上下文,因此这些子级的任何子级也可以访问传递到context.Provider的值。这一点是为了避免“道具钻孔”——但我们现在已经超出了你的问题范围

如React文档中所述,children prop是一种特殊的prop,用于将children元素直接传递到父元素的输出中。
在您的示例中,使用如下存储组件:

<Store>
    Hello!
</Store>

你好
具有与以下相同的效果:

const Store = () => {
    const [state, setState] = useState(initialState)
    return(
        <Context.Provider value={[state, setState]}>
            Hello!
        </Context.Provider>
    )
}
// then call it like:
<Store />
conststore=()=>{
常量[状态,设置状态]=使用状态(初始状态)
返回(
你好
)
}
//那么就这样称呼它:
或:

conststore=({input})=>{
常量[状态,设置状态]=使用状态(初始状态)
返回(
{input}
)
}
//他们喜欢这样称呼它
文档中有建议阅读的内容。这就更详细地解释了
{children}
是什么。从那里读到:一些组件不知道他们的孩子提前。这对于表示通用“框”的边栏或对话框等组件尤其常见。我们建议此类组件使用特殊的子元素道具将子元素直接传递到其输出中。
const Store = ({input}) => {
    const [state, setState] = useState(initialState)
    return(
        <Context.Provider value={[state, setState]}>
            {input}
        </Context.Provider>
    )
}
// the call it like
<Store input="Hello!" />