因此,我希望可以以最有用的方式问这个问题。我对编码非常陌生,在尝试推动自己时,我决定尝试使用React而不使用任何教程来重新创建Minesweeper。我已经获得了很多功能,但确实停留在这部分上。我正在使用事件侦听器“ onContextMenu”注册右键单击以“标记”程序中的地雷。但是我找不到正确的隔离方法,或者这是一个语法问题,导致菜单无法同时弹出。在JS中,仅在事件侦听器上返回false似乎非常简单,但我无法在React中弄清楚。
我目前正在使用“ onContextMenu”来处理右键单击,并调用一个函数来处理带有该事件侦听器的标志分配。我还可以在函数内禁用contextMenu的显示吗?
感谢您提供的任何帮助!
现在正在渲染的div如下所示:
<div
contextMenu="none"
className="square"
onContextMenu={() => this.props.rightClick(props.arrayVal)}
onClick={() => {this.props.playerTurn(this.props.index)}}
style={{color:COLORS[this.props.arrayVal], backgroundImage:this.backgroundChooser(this.props.arrayVal)}}
>
{this.squareContent(this.props.arrayVal)}
</div>
Run Code Online (Sandbox Code Playgroud)
被调用的函数如下所示:
rightClick = (id) => {
let { board, gameWon, minesLeft } = this.state
let mineCount = minesLeft
let move = board
if (gameWon === false) {
if (board[id] === -1) {
move[id] = 9
mineCount -= 1
} else if (board[id] === 9) {
move[id] = "?"
mineCount += 1
} else if (board[id] === "?") {
move[id] = …
Run Code Online (Sandbox Code Playgroud)