Я пытаюсь повторить учебник TicTacToe для React с использованием Slinky .
В какой-то момент игра должна помнить, чей игрок на терне. Для этого в уроке они добавляют логическое значение xIsNext
. Вместо этого я определил
sealed trait Player { def next: Player }
object Player {
case object X extends Player { def next: Player = O }
case object O extends Player { def next: Player = X }
}
, а тип State
типа Board
, таким образом, содержит поле nextPlayer
типа Player
. Когда игрок щелкает, он должен обновить состояние, вызывая next
для значения nextPlayer
.
Однако, во-первых, когда он компилируется, я получаю предупреждение «Использование резервного вывода для типа tictactoe.SquareContent.Player (происхождение: MacroWritersImpl) ", которого я не понимаю.
Во-вторых, в вызове setState
оба значения nextPlayer
и nextPlayer.next
равны X
.
* 1026. * У меня нет проблем с логическим способом выполнения ...
Как я могу это исправить?