【问题标题】:How can I show enum values ​from API in select dropdown in reactjs?如何在 reactjs 的选择下拉列表中显示来自 API 的枚举值?
【发布时间】:2021-12-16 11:24:57
【问题描述】:

我想同时接收来自 3 个不同 API 的请求。我希望将请求返回的枚举值显示在选择选项上。然后用户将不得不从这些选项中进行选择。他选择的结果仍将发送到不同的 API。

 function getSeverity() {   
    return axios.get(`http://localhost:8080/enum/..`);
  }
  function getCategory() {  
    return axios.get(`http://localhost:8080/enum/..`);
  }
  function getStatus() { 
    return axios.get(`http://localhost:8080/enum/..`);
  }
  useEffect(() => {
    Promise.all([getSeverity(), getCategory(), getStatus()])
      .then(function (results) {
        const severity = results[0];
        const category = results[1];
        const status = results[2];
      });
  }, []);

return (
    <div className="container">
      <div className="w-75 mx-auto shadow p-5">
        <h2 className="text-center mb-4">Add A New Field</h2>
        <form onSubmit={e => onSubmit(e)}>      
          <div className="form-group">
            <label>
              Severity
            </label>
            <select defaultValue={severity}>
              {_.map(severity, (value, key) => (
                <option value={key} key={key}>{value}</option> ))}
            </select>
          </div>
          <div className="form-group">
            <label>
              Status
            </label>
            <input
              type="text"
              className="form-control form-control-lg"
              placeholder="Enter status"
              name="status"
              value={status}
              onChange={e => onInputChange(e)} />
          </div>
          <div className="form-group">
            <label>
              Category
            </label>
            <input
              type="text"
              className="form-control form-control-lg"
              placeholder="Enter category"
              name="category"
              value={category}
              onChange={e => onInputChange(e)}
            />
          </div>         
        </form>
      </div>
    </div>
  );
};

【问题讨论】:

    标签: javascript reactjs react-bootstrap web-frontend


    【解决方案1】:

    您可以使用 Object.keys 循环遍历对象键

    您的循环将如下所示。

    {Object.keys(severity).map(key => (
                    <option value={key} key={key}>{serverity[key]}</option> ))}
    

    您将获得一个数组中的键,并使用 .map 循环遍历它。

    【讨论】:

    • API 中的值不会出现在下拉菜单中。我可能在哪里犯了错误?
    猜你喜欢
    • 2021-08-19
    • 1970-01-01
    • 2023-04-05
    • 2021-07-31
    • 2013-09-15
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多