【发布时间】:2021-06-12 00:14:35
【问题描述】:
我正在使用 React 中的调色板生成器,我遇到的问题是,当我尝试将不同的颜色传递给将形成调色板的每个子 div 时,每个子 div 都会获得相同的颜色。
这里是代码
class ColorPaletteContainer extends React.Component {
constructor(props) {
super(props);
this.state = {
color: null,
};
this.setRandomColor = this.setRandomColor.bind(this);
}
setRandomColor() {
let randomColor = "rgb(";
for (let i = 0; i < 3; i++) {
randomColor += Math.floor(Math.random() * 255);
if (i < 2) {
randomColor += ",";
}
}
randomColor += ")";
this.setState({
color: randomColor,
});
}
render() {
return (
<>
<ColorDiv color={this.state.color}></ColorDiv>
<ColorDiv color={this.state.color}></ColorDiv>
<ColorDiv color={this.state.color}></ColorDiv>
<button onClick={this.setRandomColor}>Press me!</button>
</>
);
}
}
class ColorDiv extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div>
<h1 style={{ background: this.props.color }}>This is a color div!</h1>
</div>
);
}
}
基本上,父组件将相同的颜色传递给所有 3 个子组件,因为我传递了相同的状态。知道如何传递不同的颜色吗?
【问题讨论】:
标签: html reactjs web components