【发布时间】:2021-03-22 02:21:06
【问题描述】:
我正在尝试使用 React 制作井字游戏,并且我已经完成了构建元素,但我无法使其功能如何使点击工作以及如何找到获胜者。
有人可以帮我解决这个问题吗?
这是我写的代码:
import React, { useState } from "react";
import ReactDOM from "react-dom";
const rowStyle = {
display: "flex"
};
const squareStyle = {
width: "60px",
height: "60px",
backgroundColor: "#ddd",
margin: "4px",
display: "flex",
justifyContent: "center",
alignItems: "center",
fontSize: "20px",
color: "white"
};
const boardStyle = {
backgroundColor: "#eee",
width: "208px",
alignItems: "center",
justifyContent: "center",
display: "flex",
flexDirection: "column",
border: "3px #eee solid"
};
const containerStyle = {
display: "flex",
alignItems: "center",
flexDirection: "column"
};
const instructionsStyle = {
marginTop: "5px",
marginBottom: "5px",
fontWeight: "bold",
fontSize: "16px"
};
const buttonStyle = {
marginTop: "15px",
marginBottom: "16px",
width: "80px",
height: "40px",
backgroundColor: "#8acaca",
color: "white",
fontSize: "16px"
};
class Square extends React.Component {
handleClick(index) {}
render() {
return (
<div
className="square"
style={squareStyle}
value={this.props.number}
onClick={() => this.handleClick(this.props.number)}
></div>
);
}
}
class Board extends React.Component {
render() {
return (
<div style={containerStyle} className="gameBoard">
<div className="status" style={instructionsStyle}>
Next player: X
</div>
<div className="winner" style={instructionsStyle}>
Winner: None
</div>
<button style={buttonStyle}>Reset</button>
<div style={boardStyle}>
<div className="board-row" style={rowStyle}>
<Square number={1} />
<Square number={2} />
<Square number={3} />
</div>
<div className="board-row" style={rowStyle}>
<Square number={4} />
<Square number={5} />
<Square number={6} />
</div>
<div className="board-row" style={rowStyle}>
<Square number={7} />
<Square number={8} />
<Square number={9} />
</div>
</div>
</div>
);
}
}
class Game extends React.Component {
render() {
return (
<div className="game">
<div className="game-board">
<Board />
</div>
</div>
);
}
}
ReactDOM.render(<Game />, document.getElementById("root"));
我在 Codesandbox 上的代码: https://codesandbox.io/s/serene-ganguly-t39mu
【问题讨论】:
-
这能回答你的问题吗? Tic-Tac-Toe using React JS
-
您可以从React Doc获得解决方案
标签: reactjs tic-tac-toe