2017-11-21 13 views
0

私は基本的なReact 'tic tac toeチュートリアルに従っていて、何が起きているのかほとんどを理解していました。React Tic Tac Toeチュートリアル

しかし、私が2番目の部分に着いたとき、私はかなり理解していなかったものに遭遇しました。

tic tac toeゲームには、履歴変数があります。この変数には正方配列の配列が含まれます。 (そのため、四角で構成された競技場のインスタンス)。チュートリアルで今

history = [{ 
squares: [ 
    null, null, null, 
    null, null, null, 
    null, null, null, 
]},{ 
squares: [ 
    null, null, null, 
    null, 'X', null, 
    null, null, null, 
]},// ...] 

コードのこの作品が書かれている:

const moves = history.map((step, move) => { 
    const desc = move ? 
    'Go to move #' + move : 
    'Go to game start'; 
    return (
    <li> 
     <button onClick={() => this.jumpTo(move)}>{desc}</button> 
    </li> 
); 
}); 

私はそれが何を得るが、ステップや動きパラメータから来るのかどこ私の質問はありますか?また、この例では、ステップとムーブの違いは何ですか? 1つのパラメータで十分ではないでしょうか?マップ関数を詳しく見てみましたが、この具体的な例の明確さはわかりません。完全なコードへ

リンク:フルチュートリアルへ https://codepen.io/gaearon/pen/gWWZgR?editors=0010

リンク(履歴を保存章は、このコードを紹介する): https://reactjs.org/tutorial/tutorial.html

ありがとう!

+0

[Array#map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)のマニュアルをお読みになりましたか? mapコールバック関数は3つの引数、 'function callback(currentValue、index、array)'をとります。つまり、stepはcurrentValue、moveはインデックスです –

答えて

1

W3schoolsのドキュメントhereは私が読むのが少しシンプルです。 Es6は矢印関数を導入したので、構文は少し違って見えますが、フードの下では同じです。

マップ機能はcurrentValueindexのためには3つの引数を取り、そしてarray【選択ステップをし、パラメータがcurrentValueindexと整列移動することができます。 3番目の引数がないので、配列は削除されます。

+0

これをさらに明確にするために、map関数が繰り返されるたびにstepパラメータが要素0から始まる履歴配列内の次の要素と移動インデックスは、整数1から1だけインクリメントされます。 – MEnf