You need to enable JavaScript to run this app. React调用API获取数据填充select下拉框无选项问题求解
优惠活动
大模型
产品
解决方案
定价
更多

React调用API获取数据填充select下拉框无选项问题求解

问题根因

  • 核心问题是<option>节点没有作为子元素放入类型为select的<AvInput>标签内部,当前你把option写在了AvInput的同级位置,浏览器无法将其识别为下拉框的选项
  • useState初始值设为null也会导致首次渲染时没有列表,虽然接口返回后会触发重渲染,但因为option位置不对所以依然无法生效
  • 额外注意变量名intergrationLevel存在拼写错误(正确应为integrationLevel),避免后续出现其他引用错误

修正方案

直接修改代码如下即可:

1. 调整state初始化

// 把初始值从null改成空数组,避免空判断同时防止map调用报错
const [intergrationLevel, setIntegrationLevel] = useState<any[]>([]);

2. 调整下拉框渲染逻辑

注意要把原来自闭合的<AvInput />改成带结束标签的格式,将option作为子元素放入:

<div className="col-md-4">
  <AvGroup>
    <Label>Level</Label>
    <AvInput
      id="integration-level"
      data-cy="integration-level"
      type="select"
      className="form-control"
      name="realm"
    >
      {intergrationLevel.map(int => (
        <option value={int.cod} key={int.cod}>
          {int.cod}
        </option>
      ))}
    </AvInput>
  </AvGroup>
</div>

补充校验

如果修改后依然显示异常,可以先打印接口返回的response确认两个点:

  • 返回结果是否为数组格式
  • 数组每个元素是否存在cod字段,避免字段名不匹配导致空选项

内容的提问来源于stack exchange,提问作者Jack23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 16:15:03