Я пытаюсь создать компонент реагирования, который может отображать либо «колышек»:
![Imgur](https://i.imgur.com/B5R8jvz.png)
, либо «nopeg» (который является просто пробелом без колышка).Это делается просто путем изменения класса компонента Peg.У меня также есть другая цель.Если щелкнуть колышек и его класс «nopeg», то я хочу немедленно поменять колышек на класс «колышек», затем подождать 1 секунду, а затем изменить его обратно на «nopeg».Это делается с помощью React.js:
class Peg extends React.Component {
constructor(props) {
super(props);
this.handleDrop = this.handleDrop.bind(this);
}
handleDrop(event) {
if (event.target.className == 'nopeg') {
event.target.className = 'peg'
setTimeout((e) => {
e.target.className = 'nopeg'
}, 1000, event)
}
}
render() {
const classdef = this.props.class;
const iddef = this.props.id;
return <div id={iddef} class={classdef} onClick={this.handleDrop}></div>
}
}
. Как видите, функция setTimeout
обрабатывает ожидание, вводя объект события, ожидая 1 секунду, а затем изменяя имя класса.По какой-то причине это не работает, и я могу изменить только колышек на «nopeg».