gpt4 book ai didi

javascript - 为什么我的状态没有在此组件中设置

转载 作者:行者123 更新时间:2023-12-01 00:34:26 28 4
gpt4 key购买 nike

练习我的 React 技能,构建一款纸牌比赛游戏。有16张牌,一次翻2张。如果匹配,它们会保持翻转并显示卡片的面孔,如果不匹配,它们会翻转回来以显示卡片的背面。

这个项目还没有完成,正在一步步进行。我使用 JSX 图像中状态的动态引用(在渲染 -> 返回中)添加了卡背(初始状态)。他们按照预期那样面朝下加载。 onClick 正确地从事件中获取 id,并且我尝试 setState 在用户单击时显示卡面(通过“选定”方法)。当我使用 console.log 进行测试时,会从事件中记录正确的 id,但是当我使用 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;

最佳答案

this.setState( { [id] : q } );

尝试一下,希望效果很好。

关于javascript - 为什么我的状态没有在此组件中设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58250022/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com