【发布时间】:2018-09-26 22:44:47
【问题描述】:
大家好,所以我正在做这件事,我有 4 个方块,当我单击按钮时,3 个随机方块必须按顺序以不同的颜色闪烁。我需要将闪烁的方块的 id 存储在一个数组中。我想不通的是如何让他们一个接一个地眨眼。这就是我目前所拥有的...https://codepen.io/anon/pen/dmBxYe?editors=0110
class App extends React.Component {
constructor() {
super();
this.state = {
colors: ['yellow', 'red', 'blue', 'green'],
quantity: 3,
}
}
start() {
const {quantity} = this.state;
const quantityArray = Array.from(Array(quantity));
const pieces = Array.from(document.querySelectorAll('.game-piece'));
quantityArray.forEach((item, i) => {
setTimeout(() => {
pieces[i].classList.toggle(`${this.state.colors[i]}`);
}, i * 500); // we're passing x
setTimeout(() => {
pieces[i].classList.toggle(`${this.state.colors[i]}`);
}, 700 * (i))
});
}
render() {
return (
<div className="memory-game">
{this.state.colors.map((gamePiece, i) => {
return <div key={`gamePiece-${i}`} className="game-piece"></div>
})}
<button onClick={this.start.bind(this)} className="start-game">Start the game</button>
</div>
)
}
}
React.render(<App />, document.getElementById('app'));
【问题讨论】:
-
如果要一个接一个的发起,最后在里面先发起超时调用
标签: javascript arrays reactjs settimeout setinterval