Javascript 反应:基础数据结构更改时是否重新分配键?

Javascript 反应:基础数据结构更改时是否重新分配键?,javascript,reactjs,Javascript,Reactjs,我在学习如何反应。目前正在尝试了解对账流程的工作原理 我的JSX中有一个映射函数: render: function () { var currentIssues = this.state.issues.map(function(issue, i) { return ( <Issue key={ i } ... </Issue> ); });

我在学习如何反应。目前正在尝试了解对账流程的工作原理

我的JSX中有一个映射函数:

render: function () {
          var currentIssues = this.state.issues.map(function(issue, i) {
            return (
              <Issue key={ i } ... </Issue>
            );
          });   
          return ( ... )
render:function(){
var currentIssues=this.state.issues.map(函数(问题,i){
返回(

简而言之,在更新列表时,对于列表中的每个项,React将检查具有该键的项是否已存在。如果已存在,则将更新该DOM节点,如果不存在,则将删除该DOM节点。因此,通常将索引用作键是没有意义的。相反,请为该项使用唯一标识符或仅传入整个项

它对每个元素()执行的检查实际上非常简单


运行在所有子级上的实际值要复杂一些,但是如果您好奇……

如果您正在修改
问题
并随后使用新的val调用
设置状态
,那么是的,您将强制执行
呈现()
。至于
的值,它看起来是数组的索引(
i
),它将始终是顺序的。如果要从数组中添加/删除项,则绝对不应在它们的键处使用索引。如果有,请使用
issue.id
,或者我认为将整个
issue
对象传递给键是可以的,但我不是非常确定。