работает над моими навыками React, строит карточную игру. есть 16 карт, вы переворачиваете более 2 одновременно. если это совпадение, они остаются перевернутыми и показывают лица, если нет, они переворачиваются, чтобы показать обратную сторону карт.
Этот проект не завершен, шаг за шагом. Я добавил обратную сторону карты (начальное состояние), используя динамическую привязку к состоянию в изображениях JSX (в render-> return). они грузят лицом вниз, как и положено. onClick правильно получает идентификатор из события, и я пытаюсь установить setState, чтобы показать лицо карты, когда пользователь щелкает (с помощью метода «selected»). когда я тестирую с console.log, правильный идентификатор регистрируется в событии, но когда я в console.log сообщаю о состоянии, он говорит неопределенный.
что я делаю не так?
import React, {Component} from 'react';
import './Game.css';
import cardBack from '../../Images/back.png';
import j from '../../Images/j.jpg';
import q from '../../Images/q.jpg';
import k from '../../Images/k.jpg';
import a from '../../Images/a.png';
class Game extends Component {
state = {
card0: cardBack,
card1: cardBack,
card2: cardBack,
card3: cardBack,
card4: cardBack,
card5: cardBack,
card6: cardBack,
card7: cardBack,
card8: cardBack,
card9: cardBack,
card10: cardBack,
card11: cardBack,
card12: cardBack,
card13: cardBack,
card14: cardBack,
card15: cardBack,
}
selected = (event) => {
let id = event.currentTarget.id;
console.log(id);
this.setState({id, q});
console.log(this.state[id]);
}
render() {
return (
<div id="gameBox">
<img src={this.state.card0} id="card0" className="card" onClick={this.selected}/>
<img src={this.state.card1} id="card1" className="card" onClick={this.selected}/>
<img src={this.state.card2} id="card2" className="card" onClick={this.selected}/>
<img src={this.state.card3} id="card3" className="card" onClick={this.selected}/>
<img src={this.state.card4} id="card4" className="card" onClick={this.selected}/>
<img src={this.state.card5} id="card5" className="card" onClick={this.selected}/>
<img src={this.state.card6} id="card6" className="card" onClick={this.selected}/>
<img src={this.state.card7} id="card7" className="card" onClick={this.selected}/>
<img src={this.state.card8} id="card8" className="card" onClick={this.selected}/>
<img src={this.state.card9} id="card9" className="card" onClick={this.selected}/>
<img src={this.state.card10} id="card10" className="card" onClick={this.selected}/>
<img src={this.state.card11} id="card11" className="card" onClick={this.selected}/>
<img src={this.state.card12} id="card12" className="card" onClick={this.selected}/>
<img src={this.state.card13} id="card13" className="card" onClick={this.selected}/>
<img src={this.state.card14} id="card14" className="card" onClick={this.selected}/>
<img src={this.state.card15} id="card15" className="card" onClick={this.selected}/>
</div>
);
}
}
export default Game;