【问题标题】:Antd v4.5.1 Setting initial values for SelectAntd v4.5.1 设置Select的初始值
【发布时间】:2020-11-21 08:13:02
【问题描述】:

我有这段代码用于处理我的模型中的状态变化。

<Form.Item 
     name="status"
     label="Status"
>
    <Select>
       {
           statusOptions
           ?
           Object.keys(statusOptions).map(statusId => {
               return <Select.Option key={ statusId } value={ statusId }>{ statusKey2Value(statusId) }</Select.Option>;
           })
           :
           null
       }
    </Select>
</Form.Item>

statusOptions 是一个 JSON 对象,如下:

{
    0: Deleted
    1: Active
}

我正在使用 Antd v4.5.1,它建议直接在 Form 组件中处理 initialValues。我基本上从后端检索数据并将数据提供给 Form 组件。但是,当我尝试为下拉菜单设置选定选项时,它显示为“1”而不是“活动”。我找到了 Antd Select API 提供的解决方案,它将状态值作为一个内部带有标签值的对象保存,但我并没有真正发现更改后端结构的最佳选择。任何人都可以帮助我吗?

【问题讨论】:

    标签: node.js reactjs forms antd


    【解决方案1】:

    尝试在Select 组件上使用optionLabelProp="label",并在Select.Option 上放置label={statusOptions[statusId]}。哦,让Select.Option自动关闭。

    【讨论】:

    • 我认为 optionLabelProp 用于在选择时呈现内容。首次加载页面时,它仍然显示为“1”而不是“Active”。
    • 您能否提供代码的表单组件部分?我怀疑您设置 initialValues 道具的方式有问题
    • 请注意,从 4.2 开始,您现在可以直接在 Form.Item 上设置 initialValue 属性。但是,如果设置,则表单上的 initialValues 具有租用者优先级。
    • 我没有设置 initialValues,但我只是在函数内部运行 form.setFieldsValue({ ...res.data.item }) 获取数据,因为我在设置 initialValues 时遇到问题。使用 FormItem,即使我将 initialValues 设置为 null,我也无法对其进行优先级排序。
    • 你能发布res.data.item的console.log吗
    猜你喜欢
    • 2021-08-04
    • 2021-05-25
    • 2018-12-25
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    相关资源
    最近更新 更多