reactjs - 使用 Formik 字段组件有条件地检查错误
问题描述
我已经使用以下形式设置了Formik
:
const RenderForm = ({ errors, isSubmitting, isValid, touched }) => {
return (
<Form>
<h3>Sign Up</h3>
<Email
name="email"
error={touched.email && errors.email ? 'error' : null}
/>
<Password
name="password"
error={touched.password && errors.password ? 'error' : null}
/>
<Button disabled={!isValid || isSubmitting} type="submit">
Submit
</Button>
{/* {errors.firebaseErrorMessage && ( */}
{/* <Help>{errors.firebaseErrorMessage}</Help> */}
{/* )} */}
</Form>
)
}
Email
组件和Password
组件只是 Formik 组件的包装器Field
。如果验证失败,我希望能够为特定字段添加红色边框。
为此,我为error
道具设置了条件。如果它被触摸并且如果错误被传递,那么它会使用“错误”值呈现该道具。
现在有一些问题。
第一个问题我不需要向error
属性呈现“错误”值(或任何其他值)。我只需要拥有属性“错误”本身(没有任何值),然后它将被适当地设置样式。
第二个问题
为每个字段写出相同的条件测试有点烦人。我想知道ErrorMessage
除了道具之外是否有类似组件的东西。基本上,是这样的:
<Email name="email" errorProp />
<Password name="password" errorProp />
这个想法是,如果存在错误,errorProp
将设置一个“错误”属性,如果不存在错误,则什么都不存在。
所以这是我的问题...
我如何创建自己的errorProp
,或者至少简化我正在尝试做的事情?
谢谢。
解决方案
推荐阅读
- android - 如何在 Kotlin 中的 ImageView 上绘制矩形?
- google-cloud-platform - 从 conda 安装 samtools 失败
- python - 基于每个脚本在 Python 中配置日志记录的最佳方法是什么?
- flutter - Flutter FlatButton is deprecated - alternative solution with width and height
- pandas - 当满足列python中的条件时删除行
- javascript - 三元运算应该返回简单的数组
- reactjs - 组件的初始渲染问题
- javascript - 使用 MongoDB 中的 GraphQL 按 ID 查找对象
- asp.net - 一段时间后 Web 缓存消失
- node.js - 将数据库和 API 数据结构化,使其在结构方面看起来完全相同