小编典典

Reactjs地图有效,但forEach无效

reactjs

我正在努力了解forEach和map之间的区别。在以下渲染函数中,如果将“ forEach”替换为“ map”,则它将起作用。我不明白为什么它不能与“
forEach”一起使用。两种方法都同时提供{item.id}和{item.text}。那么,为什么在使用“ forEach”时没有设置“
TodoItem”的道具呢?

render() {    
  return(

     <ul>
        {this.props.items.forEach(function(item) {

           return (
              <TodoItem id={item.id} text={item.text} />)
        })} 
     </ul>
  );
}

因此,如果“ forEach”不返回任何信息,那么这也不起作用:

render() {    
  return(

     <ul>
        {this.props.items.forEach(function(item) {

              <TodoItem id={item.id} text={item.text} />
        })} 
     </ul>
  );
}

阅读 335

收藏
2020-07-22

共1个答案

小编典典

map函数返回一个项目数组,然后forEach循环遍历它们。要使此代码正常工作,请使用:

render() {    
  const items = [];
  this.props.items
    .forEach(item => items.push(
                       <li>
                          <TodoItem id={item.id} key={item.id} text={item.text} />
                       </li>
                     ))

  return(
     <ul>{items}</ul>
  );
}
2020-07-22