Javascript 在循环中处理时,onClick中的id重复
我想不出怎么修理它。我有这个jsonJavascript 在循环中处理时,onClick中的id重复,javascript,reactjs,Javascript,Reactjs,我想不出怎么修理它。我有这个json[{'key':'data','id':'3213'},{'key':'data','id':'7684'}]并且需要将'id'传输到onClick。I generete提供了一个循环帮助: this.array_container = [] for (var key in json) { array_container.push( <div onClick={() => this.func(json[key]['id'])}&g
[{'key':'data','id':'3213'},{'key':'data','id':'7684'}]
并且需要将'id'传输到onClick。I generete提供了一个循环帮助:
this.array_container = []
for (var key in json) {
array_container.push(
<div onClick={() => this.func(json[key]['id'])}><p>json[key]['key']</p></div>
)
}
问题是第二个“id”是在onClick中更改第一个容器中的“id”。两个容器在onClick中具有相同的id。什么错误?
Json具有不同的id,这是肯定的,您需要在arrow函数中传递参数。这将解决以下问题:
{/* -----------vv--------denote--vvvvvvvvvvvvv--- */ }
<div onClick={(id) => this.func(json[key]['id'])} key={key}>
<p>json[key]['key']</p> {/* ---also don't forget ^ key */}
</div>
您现在甚至可以侦听事件对象
或者,不使用箭头功能:
onClick={this.func(e, json[key]['id'])}
现在,您可以在组件类中编写公共类方法:
func = id => e => {
//...
}
您应该尝试
map
this.array_container = [];
json.map((obj) => {
this.array_container.push(
<div onClick={() => this.func(obj.id)}><p>{obj.key}</p></div>
)
});
this.array_container=[];
json.map((obj)=>{
此.array\u container.push(
this.func(obj.id)}>{obj.key}
)
});
这不是JSON,它是一个JavaScript对象数组关联数组,但为什么id是dublicate?JavaScription中没有关联数组答案对您有用吗?如果是这样的话,考虑接受其中的一个。谢谢,但是在错误代码中:改变这个。FUNC(Obj.ID)}> P>{Obj.Ki}}/P>
func = id => e => {
//...
}
this.array_container = [];
json.map((obj) => {
this.array_container.push(
<div onClick={() => this.func(obj.id)}><p>{obj.key}</p></div>
)
});