1

私は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()でスタイルを設定すると機能しますが、クリックしたカードを親コンポーネントに渡すことができるようにクラスコンポーネントが必要です。

4

1 に答える 1