reactjs - Formik - “脏”应用于具有相同自定义组件的所有实例
问题描述
当前行为
当我创建自定义输入组件并尝试根据输入是否“脏”来添加类名时,该类将应用于使用该组件的所有输入。
这是我创建的一个简单示例... https://codesandbox.io/s/hello-world-h60hj
您会注意到两个输入都使用相同的自定义组件“InputComponent”,当您开始输入其中任何一个时,该类都会应用于它们。
我认为“isValid”的行为也相同。
预期行为
该类应该只应用于我在里面输入的脏输入。
我在这里做错了吗?
解决方案
您可以通过更新InputComponent.js来实现您的输出。
<div>
<input
type="text"
{...field}
{...props}
className={
!isValid && touched[field.name] && errors[field.name] ? "error" : ""
}
/>
{!isValid && touched[field.name] && errors[field.name] && (
<div className="error">{errors[field.name]}</div>
)}
</div>
https://jaredpalmer.com/formik/docs/api/formik#dirty-boolean
true
如果值与初始值不完全相等,则返回,false
否则。dirty
是一个只读的计算属性,不应该直接改变。
我在这里更新了你的代码
https://codesandbox.io/s/hello-world-w7zwt
希望这对你有用!
推荐阅读
- c++ - 用户输入后txt文件中的数据不会改变[C++]
- twitter-bootstrap - 如何重新加载引导模式(不是整个页面)?
- amazon-web-services - 使用带有 spring-cloud-stream-binder-aws-kinesis 的 dynamodb 流
- java - RestTemplate x Feign Client 有什么区别?
- mongodb - 根据可能不存在的字段查询和排序mongo中的大量数据
- typescript - 修复没有不必要的泛型
- c++ - 将包含 main 函数的 C 程序包装到 C++ 类中,
- maven - 尝试执行 mvn clean install 时出现问题
- python - Python - 累积总和达到某个阈值
- c - c - 将 csv 文件中的浮点值写入新文件并遍历字段