javascript – 在React中动态生成JSX

我想从一个数组中为select表单生成选项.这是在React组件的render方法中,并使用JSX进行转换.

render: function(){
    return(
        <div className="control-group">
            <select id="select-food" placeholder="Pick a food...">
                <option value="">select a food</option>
                {Object.keys(this.state.foods).forEach((food) => {
                    return (<option value={food}>{food}</option>);
                })}
            </select>
        </div>
    );
}

我可以使用console.log()将forEach循环中的食物输出到控制台就好了,但HTML没有生成.我在这里错过了什么才能让它发挥作用?

解决方法:

您无法从forEach循环内部返回.您将要使用.map()代替,它将返回一个新数组.有关更多信息here.

render: function() {
  return (
    <div className="control-group">
      <select id="select-food" placeholder="Pick a food...">
        <option value="">select a food</option>
        {Object.keys(this.state.foods).map((food) => {
          return (<option value={food}>{food}</option>);
        })}
      </select>
    </div>
  );
}
上一篇:javascript – React JS嵌套条件,.map()上的意外错误


下一篇:javascript – 在React中延迟数组映射迭代