函数调用返回映射函数内反应js中每个调用的最后一个键

时间:2018-02-12 04:14:41

标签: javascript reactjs

var events={111:{event:'test1'},222:{event:'test2'}}

for (var key in events){
if (events.hasOwnProperty(key)) {

<button type="button" value={key} onClick={()=>{self.removeEvent(key)}}>                                                                     <i className="material-icons">close</i>                                                                 </button>

}
}


removeEvent(key){
console.log(key)
}`

2 个答案:

答案 0 :(得分:1)

你的问题在于循环中的上下文。

var更改为let以修复此问题:

for (let key in events){
  if (events.hasOwnProperty(key)) {

    <button type="button" value={key} onClick={()=>{self.removeEvent(key)}}>                                                                     
      <i className="material-icons">close</i>                                                                 
    </button>

  }
}

更多信息here

答案 1 :(得分:0)

你应该尝试写下面的

Object.keys(events).map( key => (
    events.hasOwnProperty(key) ? 
        <button type="button" value={key} onClick={()=>
            {self.removeEvent(key)}}>                                                                     
            <i className="material-icons">close</i>
        </button> : null                                                                        

)
相关问题