Предупреждение «Использование резервной деривации для типа ... (происхождения: MacroWritersImpl)» в Slinky, setState действует странно - PullRequest
0 голосов
/ 27 октября 2019

Я пытаюсь повторить учебник 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. * У меня нет проблем с логическим способом выполнения ...

Как я могу это исправить?

...