【发布时间】:2022-01-02 18:17:03
【问题描述】:
我正在将布局中的一些道具转移给每个孩子。这在子元素是直接布局的子元素时有效,但当我将布局的子元素包装在例如 div 中时它不起作用。
工作案例:
<Layout >
<SectionA language={props.language} />
</Layout>
但在这种情况下并非如此:
<Layout >
<div>
<SectionA language={props.language} />
</div>
</Layout>
*当我访问 <SectionA /> 组件中的 props.language 时,它是未定义的
这是我将道具从布局转移到其子级的方式
render(){
const children = React.Children.map(this.props.children, (child, index) => {
return React.cloneElement(child, {
language: this.state.language,
});
});
return (
{children}
)
}
【问题讨论】:
-
如果我理解您正在尝试正确执行的操作,您正在尝试向 Layout 的子项添加一个道具,在您的第二个示例中是 div 元素,而不是 Section 组件。
-
我正在尝试向 SectionA 组件添加一个道具,该组件位于第二个示例中的 div 内部。我用 div 包装 SectionA 以进行样式设置
标签: javascript reactjs next.js