【问题标题】:for loop only returns the initial index in reactJSfor 循环只返回 reactJS 中的初始索引
【发布时间】:2017-04-12 11:24:21
【问题描述】:

我是 React JS 新手,所以作为我的实践,我正在创建一个动态的生日表单。我的第一个挑战是在选择的出生年份中列出从 1900 年到当前年份(2017 年)的年份,所以我使用for 循环使其更短,而不是在标记。下面的代码没有执行成功,它只返回了 2017。

export default class Items extends Component {
  render() {
    return(
      <div>
        <form>
          <select name='year' className='yearSelect'>
            <option value="">Year</option>
            {
              for(let yearCount = 2017; yearCount >= 1900; yearCount--)
                return <option value={yearCount}>{yearCount}</option>
            }
          </select>
        </form>
      </div>
    );
  }
}

在控制台中,它抛出了一个错误,上面写着:

花括号因为作用域而困扰我,所以我不得不删除 for 循环的花括号并缩进其中的行。

【问题讨论】:

标签: javascript reactjs for-loop


【解决方案1】:

更新您的代码,如下所示。

export default class Items extends Component {
  render() {
       let options = [];
         for(let yearCount = 2017; yearCount >= 1900; yearCount--)
             options.push((<option value={yearCount} key={yearCount}>{yearCount}</option>));
    return(
      <div>
        <form>
          <select name='year' className='yearSelect'>
            <option value="">Year</option>
            { options }
          </select>
        </form>
      </div>
    );
  }
}

【讨论】:

  • 非常感谢,老兄:)
  • 只有一个问题...&lt;option&gt; 标签中的key 属性是什么?它有什么作用?
  • 在循环渲染元素时。您必须分配关键属性,并且它应该是唯一的。基于这个键 react 会在这里操作元素。
  • 在使用循环操作 DOM 元素时是否总是需要该属性?
  • 是的,您必须在循环中添加关键属性。
猜你喜欢
  • 1970-01-01
  • 2012-03-16
  • 1970-01-01
  • 1970-01-01
  • 2016-07-17
  • 2018-06-18
  • 2021-07-08
  • 1970-01-01
相关资源
最近更新 更多