React Tic Tac Toe教程

时间:2017-11-21 21:46:10

标签: javascript reactjs

我正在学习基本的React&#t t tac toe教程'并了解发生的大部分事情。

然而,当我到达第二部分时,我遇到了一些我不太了解的事情,我的朋友们也不能告诉我它是如何工作的。

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>
  );
});

我得到了它的功能,但我的问题是步和移动参数来自哪里?在这个例子中,步骤和移动之间究竟有什么区别?不是一个参数就足够了吗?我试着仔细查看地图功能,但它并没有真正让我明白这个具体的例子!

链接到完整代码: https://codepen.io/gaearon/pen/gWWZgR?editors=0010

链接到完整教程(章节存储历史介绍此代码): https://reactjs.org/tutorial/tutorial.html

谢谢!

2 个答案:

答案 0 :(得分:1)

W3schools文档here对我来说简单易懂。 Es6引入了箭头函数,因此语法看起来有点不同,但在引擎盖下它是相同的。

地图函数最多可以为currentValueindexarray设置三个参数。步进和移动参数与currentValue和{{1}对齐}。由于没有第三个参数数据被删除。

答案 1 :(得分:0)

&#39;&#39;&#39;是表示历史数组中特定条目的数组条目。 &#39;移动&#39;是指向&#39; step&#39;的数组的索引。换句话说,它们形成一对,我们有


    history[move] = step

在“tac tac toe教程”的背景下。它们来自JavaScript中数组的map方法的指定语法。

这就是为什么你必须同时放置&#39;步骤&#39;并且&#39;移动&#39;即使你没有使用“步骤”,使用数组映射方法时还有参数。在代码中。不过,你可以用不同的名称命名它们。

通常情况下,您需要使用&#39; step&#39;有用的处理。但是,在这种特定情况下,只有索引信息移动&#39;用于标记起始游戏的方式不同,并且没有使用&#39; step&#39;。