在我使用 AntDesign 创建的标签组件中,数组的第一个值是一个空字符串
In the tag component I created using AntDesign, the first value of the array comes as an empty string
我使用 Ant Design 和 Redux Form。我可以使用标签组件(Select)。但我有一个问题。通常应为空的字段是作为第一个元素的字符串值。我希望该字段为空。另一个问题是它看不到占位符值。
<Field
name="select"
component={FormSelect}
// tokenSeparators={[',']}
onFocus={(e: any) => e.preventDefault()}
onBlur={(e: any) => e.preventDefault()}
mode="tags"
label="Select"
rules={[
{
required: true,
message: 'Input something!',
},
]}
>
<Option value="lucy">Lucy</Option>
<Option value="disabled">Disabled</Option>
<Option value="Yiminghe">yiminghe</Option>
</Field>
const FormSelect = (Component: any) => ({
meta,
input,
hasFeedback,
label,
name,
children,
rules,
placeholder,
onChange,
...rest }: {
input: any;
meta: any;
children: any;
hasFeedback: any;
label: any;
name: any;
onChange: any;
placeholder: any;
rules: any; }) => {
const hasError = meta.touched && meta.invalid;
return (
<Form.Item
name={name}
label={label}
validateStatus={hasError ? 'error' : 'success'}
hasFeedback={hasFeedback && hasError}
help={hasError && meta.error}
rules={rules}
>
<Component {...input} {...rest} placeholder={placeholder}>
{children}
</Component>
</Form.Item>
); };
我解决了问题。
const FormSelect = (Component: any) => ({ meta, input, hasFeedback,
label, name, children, rules, placeholder, onChange, ...rest }: {
input: any; meta: any; children: any; hasFeedback: any; label: any;
name: any; onChange: any; placeholder: any; rules: any; }) => { const
hasError = meta.touched && meta.invalid;
if (input.value === '') {
input.value = []; // the part I added
}
return (
<Form.Item
name={name}
label={label}
validateStatus={hasError ? 'error' : 'success'}
hasFeedback={hasFeedback && hasError}
help={hasError && meta.error}
rules={rules}
>
<Component {...input} {...rest} placeholder={placeholder}>
{children}
</Component>
</Form.Item> ); };
我使用 Ant Design 和 Redux Form。我可以使用标签组件(Select)。但我有一个问题。通常应为空的字段是作为第一个元素的字符串值。我希望该字段为空。另一个问题是它看不到占位符值。
<Field name="select" component={FormSelect} // tokenSeparators={[',']} onFocus={(e: any) => e.preventDefault()} onBlur={(e: any) => e.preventDefault()} mode="tags" label="Select" rules={[ { required: true, message: 'Input something!', }, ]} > <Option value="lucy">Lucy</Option> <Option value="disabled">Disabled</Option> <Option value="Yiminghe">yiminghe</Option> </Field> const FormSelect = (Component: any) => ({ meta, input, hasFeedback, label, name, children, rules, placeholder, onChange, ...rest }: { input: any; meta: any; children: any; hasFeedback: any; label: any; name: any; onChange: any; placeholder: any; rules: any; }) => { const hasError = meta.touched && meta.invalid; return ( <Form.Item name={name} label={label} validateStatus={hasError ? 'error' : 'success'} hasFeedback={hasFeedback && hasError} help={hasError && meta.error} rules={rules} > <Component {...input} {...rest} placeholder={placeholder}> {children} </Component> </Form.Item> ); };
我解决了问题。
const FormSelect = (Component: any) => ({ meta, input, hasFeedback, label, name, children, rules, placeholder, onChange, ...rest }: { input: any; meta: any; children: any; hasFeedback: any; label: any; name: any; onChange: any; placeholder: any; rules: any; }) => { const hasError = meta.touched && meta.invalid; if (input.value === '') { input.value = []; // the part I added } return ( <Form.Item name={name} label={label} validateStatus={hasError ? 'error' : 'success'} hasFeedback={hasFeedback && hasError} help={hasError && meta.error} rules={rules} > <Component {...input} {...rest} placeholder={placeholder}> {children} </Component> </Form.Item> ); };