pro-components
pro-components copied to clipboard
🐛[BUG] ProFormSelect 在设置labelInValue为true,且设置mode为tags时,存在有value与label的option,然后再手动输入的value。之后获取values的时候,只有value没有lable属性了。
🐛 bug 描述
ProFormSelect 在设置labelInValue为true,且设置mode为tags时,存在有value与label的option,然后再手动输入的value。之后获取values的时候,只有value没有lable属性了。
📷 复现步骤
先给ProFormSelect 初始化一个值{label,value},然后再输入添加一个新的值,这个时候获取就出现上述问题。
🏞 期望结果
在设置labelInValue为true,以后无论是初始化给的值,还是手动输入的值,应该都返回label与value。
💻 复现代码
import React from "react";
import {ProForm} from "@ant-design/pro-form";
import {ProFormSelect} from "@ant-design/pro-components";
import {Button} from "antd";
const Test = () => {
const [form] = ProForm.useForm();
const [result, setResult] = React.useState<string>("");
const handleSetValues = () => {
form.setFieldsValue({
name: [
{label: "123", value: "123"},
],
});
}
return (
<div>
<h1>Test</h1>
<Button onClick={handleSetValues}>set values </Button>
<ProForm
form={form}
onFinish={async (values) => {
setResult(JSON.stringify(values));
}}
>
<ProFormSelect
mode={"tags"}
name="name"
fieldProps={{
defaultOpen: false,
open: false,
labelInValue: true,
}}
label="姓名"
width="md"
/>
</ProForm>
<div>{result}</div>
</div>
);
};
export default Test;
© 版本信息
- ProComponents 版本: 2.7.0
- umi 版本 @umijs/max": "^4.0.90
- 浏览器环境 Chrome 123
- 开发环境 vscode
🚑 其他信息
这个问题还很奇怪,两个截图中,第一个截图的三个值都是输入的值,获取的结果没有label,当我删除一条再获取的时候就存在了label值
以下的 Issues 可能会帮助到你 / The following issues may help you
- [#8282][🐛[BUG] ProFormSelect 在设置labelInValue为true,且设置mode为tags时,存在有value与label的option,然后再手动输入的value。之后获取values的时候,只有value没有lable属性了。][100%]
试着加一个valueEnum看看?
添加这个属性以后并没有解决问题,然后数据上还多增加了key与title的字段。