react-select 的 yup 验证如何进行
How do the yup validation for react-select
我找到了 react-select(多个 select)的 yup 验证。请参考 link select multiple items of react-select validation in yup。但我不需要多个 [=使用 yup.I 的 22=]ion 验证需要对使用 yup.I 的 react-select 进行基本验证,但我未能使用 yup 实施 react-select 验证。
如何使用 yup.Please 帮我解决这个问题。
提前致谢。最佳答案将不胜感激。
https://codesandbox.io/s/03zxq01okp
- 将
topics
更改为topic
- 将主题验证类型从数组更改为字符串
- 将
max
替换为required
- 将
ensure
添加到默认为空字符串以处理被清除的选定值 (https://github.com/jquense/yup#stringensure-schema)
- 将
mapPropsToValues
topic
类型从数组更改为字符串
- 使用
topic
的 value
作为有效载荷
差异:
15,22c15,17
< topics: Yup.array()
< .max(1, "Pick at least 3 tags")
< .of(
< Yup.object().shape({
< label: Yup.string().required(),
< value: Yup.string().required()
< })
< )
---
> topic: Yup.string()
> .ensure()
> .required("Topic is required!")
26c21
< topics: []
---
> topic: ""
31c26
< topics: values.topics.map(t => t.value)
---
> topic: values.topic.value
72c67
< value={values.topics}
---
> value={values.topic}
75,76c70,71
< error={errors.topics}
< touched={touched.topics}
---
> error={errors.topic}
> touched={touched.topic}
107c102
< this.props.onChange("topics", value);
---
> this.props.onChange("topic", value);
112c107
< this.props.onBlur("topics", true);
---
> this.props.onBlur("topic", true);
118c113
< <label htmlFor="color">Topics (select at least 3) </label>
---
> <label htmlFor="color">Topic</label>
156c151
< <code>topics</code> that uses Jed Watson's{" "}
---
> <code>topic</code> that uses Jed Watson's{" "}
我找到了 react-select(多个 select)的 yup 验证。请参考 link select multiple items of react-select validation in yup。但我不需要多个 [=使用 yup.I 的 22=]ion 验证需要对使用 yup.I 的 react-select 进行基本验证,但我未能使用 yup 实施 react-select 验证。
如何使用 yup.Please 帮我解决这个问题。
提前致谢。最佳答案将不胜感激。
https://codesandbox.io/s/03zxq01okp
- 将
topics
更改为topic
- 将主题验证类型从数组更改为字符串
- 将
max
替换为required
- 将
ensure
添加到默认为空字符串以处理被清除的选定值 (https://github.com/jquense/yup#stringensure-schema)
- 将
- 将
mapPropsToValues
topic
类型从数组更改为字符串 - 使用
topic
的value
作为有效载荷
差异:
15,22c15,17
< topics: Yup.array()
< .max(1, "Pick at least 3 tags")
< .of(
< Yup.object().shape({
< label: Yup.string().required(),
< value: Yup.string().required()
< })
< )
---
> topic: Yup.string()
> .ensure()
> .required("Topic is required!")
26c21
< topics: []
---
> topic: ""
31c26
< topics: values.topics.map(t => t.value)
---
> topic: values.topic.value
72c67
< value={values.topics}
---
> value={values.topic}
75,76c70,71
< error={errors.topics}
< touched={touched.topics}
---
> error={errors.topic}
> touched={touched.topic}
107c102
< this.props.onChange("topics", value);
---
> this.props.onChange("topic", value);
112c107
< this.props.onBlur("topics", true);
---
> this.props.onBlur("topic", true);
118c113
< <label htmlFor="color">Topics (select at least 3) </label>
---
> <label htmlFor="color">Topic</label>
156c151
< <code>topics</code> that uses Jed Watson's{" "}
---
> <code>topic</code> that uses Jed Watson's{" "}