Javascript React.map()函数中的递增变量
我通过一个数组进行映射,我希望我的变量I被用作我的组件的唯一键,但是我不知道如何或在哪里正确地增加它,如果我在标记中添加{I++},那么它将在屏幕上显示I的值,如果我改为添加{this.functioni},并将I++放在函数中,它将调用函数,但每次我都会将变量重新初始化为0,因此键值不是唯一的。我需要I的值作为组件的键,并且每次都必须增加1,有人知道我如何实现这一点吗?此外,正如您在代码中看到的,当单击组件时,它将进行函数调用,该调用将把单击组件的i值作为参数发送给被调用的函数 代码:Javascript React.map()函数中的递增变量,javascript,arrays,reactjs,jsx,Javascript,Arrays,Reactjs,Jsx,我通过一个数组进行映射,我希望我的变量I被用作我的组件的唯一键,但是我不知道如何或在哪里正确地增加它,如果我在标记中添加{I++},那么它将在屏幕上显示I的值,如果我改为添加{this.functioni},并将I++放在函数中,它将调用函数,但每次我都会将变量重新初始化为0,因此键值不是唯一的。我需要I的值作为组件的键,并且每次都必须增加1,有人知道我如何实现这一点吗?此外,正如您在代码中看到的,当单击组件时,它将进行函数调用,该调用将把单击组件的i值作为参数发送给被调用的函数 代码: .ma
.map已经提供了增量,只需向回调添加第二个变量即可
render() {
var {array} = this.state;
return (
<div className="App">
{array.map((item,i) => (
<Component key={i} onClick={(e) => this.function(i, e)}>
<p>{item.name}</p>
</Component>
))}
</div>
);
}
.map已经提供了增量,只需向回调添加第二个变量即可
render() {
var {array} = this.state;
return (
<div className="App">
{array.map((item,i) => (
<Component key={i} onClick={(e) => this.function(i, e)}>
<p>{item.name}</p>
</Component>
))}
</div>
);
}
map函数获取第二个参数,该参数是元素的索引:
{array.map((item, i) => (
<Component key={i} onClick={(e) => this.function(i, e)}>
<p>{item.name}</p>
</Component>
)}
请注意,如果您打算在运行时对该数组进行排序或更改其内容,那么使用数组索引作为键可能会导致一些错误,因为有时旧组件会与新组件混淆。如果它只是一个静态数组,那么使用索引作为键应该不会有问题。map函数会获得第二个参数,即元素的索引:
{array.map((item, i) => (
<Component key={i} onClick={(e) => this.function(i, e)}>
<p>{item.name}</p>
</Component>
)}
请注意,如果您打算在运行时对该数组进行排序或更改其内容,那么使用数组索引作为键可能会导致一些错误,因为有时旧组件会与新组件混淆。如果它只是一个静态数组,那么使用索引作为键应该不会有问题。您可以尝试使用array.mapx,key=>console.logkey。。
您可以添加代码来代替console.log,它应该可以根据您的要求正常工作。您可以尝试array.mapx,Key=>console.logkey。。
您可以添加代码来代替console.log,它应该可以根据您的要求正常工作。哦,天哪,我觉得自己太笨了,因为我确实尝试过这种方法,但我总是会出错,我刚刚意识到原因,我总是在后面加,但从来没有在前面加,所以我会在不打开的情况下关闭括号…天哪,我觉得自己太笨了,因为我实际上尝试过这种方法,但我总是会出错,我才意识到为什么,我总是在后面加上,但从来没有在前面加上,所以我会关闭括号而不打开它。。。。