【问题标题】:What is difference between for and .map in ReactjsReactjs 中的 for 和 .map 有什么区别
【发布时间】:2020-12-25 06:59:22
【问题描述】:

我有一些代码:

 const moves = history.map((step, move) => {
      const desc = move ?
        'Go to move #' + move :
        'Go to game start';
      return (
        <li key={move}>
           <BtnMove desc={desc} onClick={() => this.jumpTo(move)} className={this.state.classNames[move]}/>
        </li>
      );
    });

和:

 
    var moves = []
    for(var move = 0; move < history.length; move++){
      const desc = move ?
        'Go to move #' + move :
        'Go to game start';
      moves.push(<li key={move}>
           <BtnMove desc={desc} onClick={() => this.jumpTo(move)} className={this.state.classNames[move]}/>
        </li>)
      
    }
    

当我用第一个代码调用函数 jumpTo(move) 时很好,但第二个代码会抛出错误,因为 move 大于 history .长度。 我的程序需要循环。请帮帮我!

【问题讨论】:

  • history.length的值是多少?
  • 将 var 改为 let 后尝试
  • 示例:history.length 为 4,则 jumpTo(move = 5)
  • 我把 var 改成 let,还是一样的错误
  • 我相信在for循环中将var改为let至少会抛出另一个错误。

标签: reactjs dictionary for-loop


【解决方案1】:

尽量避免使用 var (moves, move),这是一个带有 for 循环的工作示例: https://codesandbox.io/s/relaxed-golick-r917t?file=/src/App.js 我刚刚用一个简单的警报功能替换了你的 jumpTo

【讨论】:

  • 哦。我没有看到任何 for 循环。这只是 .map 函数
猜你喜欢
  • 1970-01-01
  • 2017-05-30
  • 2016-12-24
  • 2023-03-04
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
  • 2021-09-11
  • 2015-07-06
相关资源
最近更新 更多