如何在反应中覆盖儿童道具

时间:2020-06-12 16:28:43

标签: reactjs

我想绘制一个反应组件列表。每个组件的道具各不相同,但是每个元素的道具都会被父项的道具覆盖。我尝试过类似的事情

render(){
        let children=this.props.children
        let dis;
        if(Array.isArray(children)){
            dis=[]
            children.forEach(c=>{let l=Object.assign(c,Object.assign(c.props,this.props))
            dis.push(l)})

        }
        return(
            {dis}
        )

    }
}

但是出现了错误,该错误只支持只读。

1 个答案:

答案 0 :(得分:0)

听起来您要尝试的是让父组件将其他设置注入要渲染的子代中。

在这里看看: https://stackoverflow.com/a/50786569/1541237

基本上,您将像这样渲染:

render() {
  return (
    React.Children.map(this.props.children, child =>
        React.cloneElement(child, { ...this.props }));
  );
}