javascript - 在 React 中动态生成 JSX

标签 javascript dynamic reactjs jsx

我想从数组中为选择表单生成选项。这是在 React 组件的渲染方法中并使用 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(),这将返回一个新数组。更多关于 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 中动态生成 JSX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37822530/

相关文章:

javascript - 使用 Vue.js 和 Axios 将对象发布到 Api

javascript - 菜单图标根据 HTML 类/属性更改颜色

dynamic - 如何在Powershell中传递动态参数?

javascript - 将类组件转换为函数组件时出错

css - 带样式的组件可以像 SCSS 一样处理计算吗?

reactjs - 来自 "react"的 ReactFragment 是什么意思?

javascript - 无法访问 Zomato API JSON 对象

javascript - 尝试从 Chrome 扩展中获取 Cookie 时出错

php - sitemap.xml 是用页面加载还是仅由机器人加载?

c++ - 如何在 C++ 中创建动态结构数组?