我正在学习 React,在我的测试应用程序中,我制作了 2 组相同的随机颜色数组,每次单击“更改颜色”按钮时都会随机播放和更改颜色。但是,即使颜色值正确更改,我似乎也无法让 Dom 更新我的数组颜色。
import React from 'react';
class Card extends React.Component{
constructor(props){
super(props);
const {r,g,b}=this.props.card
this.state={
style:{
width:'100px',
height:'100px',
display:'inline-block',
backgroundColor:`rgb(${r},${g},${b})`
}
}
}
onClick=()=>{
const {r,g,b}=this.props.card
console.log('color values of the card with index',this.props.id ,' is: ', r,g,b)
}
render(){
const {style}=this.state
return (
<div style={style}>
<button onClick={this.onClick}>card test</button>
</div>
)
}
}
export default Card;
这是我的问题的图片
正如您在图片中看到的,每次单击时值都会发生变化,但卡片的颜色保持不变。但是,如果我将基于类的组件更改为非基于类的组件并在 render() 而不是构造函数中设置样式,它将起作用,但我想要一个类组件,以便我可以将单击的卡片传递给父组件。