gpt4 book ai didi

javascript - 如何在用户单击时删除框中的文本?

转载 作者:行者123 更新时间:2023-11-29 20:49:18 25 4
gpt4 key购买 nike

到目前为止,我的代码在单击它时将 G 放在选定的框中。但是这次,我也想在单击它时将其删除。

我的代码哪里做错了,我该如何解决?

这是我的代码:

import React, { Component } from 'react';
import './Main.css';

class Main extends Component {
constructor(props) {
super(props);

this.state = {
board: Array(3).fill(''),
symbol: 'G',
deleted: ''
}
}

circClicked(box) {
this.setState({
symbol: this.state.board[box.dataset]
});

box.innerText = this.state.symbol;

if(this.state.board[box.dataset] === this.state.symbol) {
for (let i = 0; i < this.state.board.length; i++) {
let s = this.setState({board: this.state.board[i]});
s--;
}
}
}

render() {
return(
<div id="game">
<div id="board" onClick={(e) => this.circClicked(e.target)}>
<div className="circ"></div>
<div className="circ"></div>
<div className="circ"></div>
</div>
</div>
);
}
}

export default Main;

最佳答案

考虑修改您的方法,以便您委派渲染/填充 UI 以使用react的责任。这将使您的 UI 行为更可预测。

也许这样的事情对你有用?

import React, { Component } from 'react';
import './Main.css';

class Main extends Component {
constructor(props) {
super(props);

this.state = {
board: Array(3).fill(''),
symbol: 'G',
deleted: ''
}
}

circClicked(index) {

// Clone the board array
const board = [...this.state.board]

// Assign the next value to be shown in this "circ" element
board[index] = board[index] ? '' : this.state.symbol

// Update the render values to be displayed
this.setState({ board });
}

render() {
return(
<div id="game">
<div id="board">
<div className="circ" onClick={(e) => this.circClicked(0)}>{ this.state.board[0] }</div>
<div className="circ" onClick={(e) => this.circClicked(1)}>{ this.state.board[1] }</div>
<div className="circ" onClick={(e) => this.circClicked(2)}>{ this.state.board[2] }</div>
</div>
</div>
);
}
}

export default Main;

关于javascript - 如何在用户单击时删除框中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52711807/

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