1
私はTic Tac Toeゲームに関するリアクションチュートリアルをやっています。私は2Dゲームフィールドの状態を保存するヘルパークラスの正方形を作成することに決めました。反応コンポーネントにヘルパークラスが表示されません。どうして?
class Squares {
constructor(size) {
this._size = size
this._squares = Array(size * size).fill(null)
}
square(row, col, value) {
let position = (row - 1) * this._size + col - 1
if (value !== undefined)
this._squares[position] = value
return this._squares[position]
}
get size() {
return this._size
}
get copy() {
let squares = new Squares(this._size)
squares._squares = this._squares.slice()
return squares
}
}
このようにコンポーネントの状態で使用します。
ただし、エラーが発生しました。 "TypeError:正方形はコンストラクタではありません"
内部コンポーネント正方形は定義されていません!しかし、私はクラスを機能させるために歪ませます。
function Squares(size) {
class Squares {
...
}
return new Squares(size)
}
..コンポーネントクラスは今すぐクラスを見ることができます! しかし、なぜですか?クラスと関数の違いは何ですか?
私のためにうまくいくようです:https://codepen.io/anon/pen/MoJYoO?editors=1011 – sbking
はい。私は私のプロジェクトでテストしてOKです。ゲームと四角は同じファイルにありますか? – croraf
問題が解決しました。ヘルパークラスはコンポーネントクラスの後にあったため、正しく機能しませんでした。 @crorafの答えは絶対に正しい。 –