【发布时间】:2017-11-21 21:46:10
【问题描述】:
我正在学习基本的 React 'tic tac toe tutorial' 并且理解了大部分发生的事情。
但是当我进入第二部分时,我遇到了一些我不太理解的东西,我的朋友也无法真正告诉我它是如何工作的。
井字游戏有一个历史变量。这个变量包含一个方阵数组。 (因此,由正方形组成的比赛场地的实例)。
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>
);
});
我知道它的作用,但我的问题是 step 和 move 参数从何而来?在这个例子中,step 和 move 之间到底有什么区别?一个参数不够吗?我尝试更仔细地查看 map 函数,但它并没有让我对这个具体的例子有任何清晰的认识!
完整代码链接: https://codepen.io/gaearon/pen/gWWZgR?editors=0010
完整教程的链接(存储历史章节介绍了此代码): https://reactjs.org/tutorial/tutorial.html
谢谢!
【问题讨论】:
-
您阅读过Array#map 文档吗? map 回调函数最多需要三个参数,
function callback(currentValue, index, array)- 所以,step 是 currentValue,move 是 index
标签: javascript reactjs