如何在React表单中正确渲染这些选项?
P粉463840170
P粉463840170 2023-09-13 00:03:43
[React讨论组]

我正在尝试让APPRAISAL_TYPE下的选项显示在我的React表单上

class Appraisal(BaseModel):
    class APPRAISAL_TYPE(models.IntegerChoices):
        self_appraisal = 1
        line_manager = 2
        coo = 3
    name = models.CharField(max_length=200, blank=True)
    category = models.IntegerField(choices=APPRAISAL_TYPE.choices, default=APPRAISAL_TYPE.self_appraisal)
    description = models.TextField(max_length=200, blank=True)
    appraisal_for = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.SET_NULL, related_name="re_appraisal_for")
    appraised_by = models.CharField(max_length=200, blank=True)
<InputGroup>
              <InputLeftAddon children="Category" borderRadius="16px" />
              <Select
                name="category"
                value={APPRAISAL_TYPE[appraisalDetails.status]}
                options={categoryOptions}
                onChange={(option) => handleChange(option, "category")}
              />
            </InputGroup>

然而,由于category是一个整数字段,它应该与APPRAISAL_TYPE连接在一起,所以我得到了一个期望整数的错误。

P粉463840170
P粉463840170

全部回复(1)
P粉086993788

你可以尝试这个

// 如果这是一个昂贵的操作,可以使用useMemo
let categoryOptions = Object.entries(APPRAISAL_TYPE).map(([key, value]) => {
  //console.log("item", key, value);
  // 修改属性以适应组件所需的选项
  return {
    label: value.label,
    value: parseInt(value.value)
  };
});

// React JSX
 <InputGroup>
      <InputLeftAddon children="类别" borderRadius="16px" />
      <Select
          name="category"
          value={APPRAISAL_TYPE[appraisalDetails.status]}
          options={categoryOptions}
          onChange={(option) => handleChange(option, "category")}
       />
 </InputGroup>

使用了什么类型的Select组件,categoryOptions的属性需要相应更改

希望能帮助您解决问题。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号