React學習筆記--Tic Tac Toe例程填坑

React學習筆記

三 Tic Tac Toe例程填坑

  React開發環境搭建好後,就是對React自己進行學習了,React官方的Tic Tac Toe是一個不錯的練手樣例。本人按照官方樣例一步一步的進行開發,前面進行的都還算順利,但是當進行到Implementing Time Travel章節後,發現按照樣例實現的代碼存在問題。
  主要表現爲如下問題:html

  • 返回歷史步驟後,步驟列表沒有減小;
  • 返回歷史步驟後,繼續下棋的過程當中棋盤會將歷史步驟中的棋子再次渲染出來;
  • 屢次返回歷史步驟後,點擊棋盤沒有反應;

  經過研究源程序我發現問題出在了jumpTo函數上。原來的函數以下,每次跳轉到歷史步驟時,沒有對state中的history數組進行修正,致使後續的操做產生了混亂。react

jumpTo(step) {
        this.setState({
            stepNumber: step,
            xIsNext: (step % 2) === 0,
        });
}

  通過修正後,jumpTop函數以下,上述問題既不會產生了。web

jumpTo(step) {
        this.setState({
            stepNumber: step,
            xIsNext: (step % 2) === 0,
            history: this.state.history.slice(0, step + 1),
        });
}

  可能本人的程序是其餘地方有問題,致使按照例程開發出來的遊戲沒有預期的表現,請園友多多指正。數組

相關文章
相關標籤/搜索