我没有js的经验,并建议在React Native之前学习React。我的问题来自Intro to React's tutorial的代码。React简介教程:列表的键值如何获得它们的值?
在教程中,我们做了一个名为history
列表,move
为key
。
class Game extends React.Component {
constructor() {
super();
this.state = {
history: [{
squares: Array(9).fill(null)
}],
xIsNext: true,
stepNumber: 0,
};
}
[...]
render() {
[...]
const moves = history.map((step, move) => {
const desc = move ?
'Move #' + move :
'Game start';
return (
<li key={move}>
<a href="#" onClick={() => this.jumpTo(move)}>{desc}</a>
</li>
);
});
[...]
该部分的解释是
[...]阵营要求您在列表中指定每个元素的关键属性,一个字符串,从它的兄弟姐妹区分每个组件。在这种情况下,alexa,ben,claudia可能是明智的关键;如果项目对应的对象在数据库中,该数据库ID通常是一个不错的选择:
<li key={user.id}>{user.name}: {user.taskCount} tasks left</li>
[...]我们强烈建议您指定只要构建动态列表正确的密钥。如果您没有合适的钥匙,您可能需要考虑重组您的数据,以便您可以这样做。 [...]如果你没有指定任何键,React会警告你,并回退到使用数组索引作为关键 - [...]
现在我对此感到困惑,是move
上面history
?我看不到任何暗示move
被分配一个值,但是当它被打印时,它显示列表索引?怎么来的?
我强烈认为努力学习了一个框架,在很大程度上依赖于知道JS之前学习JS。 –