问题标签 [formik]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - withFormik如何在handleSubmit中访问包装表单的道具
我定义:
然后使用 withFormic 定义 HOC:
在父组件中,我指定了一个回调函数:
现在,我希望 handleSubmit 调用回调函数。我会做的
但似乎this
在 HOC 中没有定义。
问题:如何访问 HOC 中的 Form1.props?
reactjs - 如何在 React 中使用带有数字输入的占位符?
我有一个如下形式的数字输入:
如何在其上显示占位符短语?
如果我最初设置this.state.weight
为 value 0
,则不会显示占位符。
如果我将它设置null
为占位符显示但收到这个丑陋的警告
警告:
value
prop oninput
不应为空。考虑使用空字符串来清除组件或undefined
不受控制的组件。
reactjs - 使用 YUP 验证文件是否存在
我正在使用Yup来验证我的表单。在我的一种形式中,我想验证一个<input type="file" />
是否有文件。
我已经对此进行了测试(但它不起作用):
我在控制台中有以下错误消息:
file 必须是一个
object
类型,但最终值是:(null
从 value 转换{}
)。如果“null”旨在作为空值,请务必将架构标记为.nullable()
任何想法?
reactjs - Formik 和 Semanic UI React。打字延迟,不必要的验证
这是我的动态表单的一个简单示例。
在 Fromik 本身我有简单的 console.log
因此,每次我在字段中输入时,每次按键时,我都会从验证中获取日志结果(我不想要),并且每次按下按键时都会有微延迟。
reactjs - 触发“onChange”时,Formik FieldArray 失去焦点
我已按照 Formik 团队成员撰写的文章中的教程进行操作, 但事情并没有按预期工作;每当我在文本输入字段中输入内容时,每次按下它都会失去焦点,我必须一次又一次地单击文本输入字段来写下一个字符。我共享了代码和框链接。
这是从文章中获取的代码
javascript - 使用 jest/enzyme 对 formik 组件进行单元测试
我整理了一个非常基本的联系表格,效果很好。但是我现在需要开始编写我的单元测试并且我遇到了很多问题(就像我到目前为止只设法让快照测试通过)。
因此,首先我试图测试如果您没有填写所有必需的部分,当您单击提交按钮时表单应该呈现我的验证消息。
handleSubmit()
我想我可以通过调用函数
来实现这一点,例如:componentRender.find('Formik').instance().props.handleSubmit(badFormValues, { resetForm });
但是,当我运行时componentRender.debug()
,我的验证消息没有被呈现。就像没有调用validationSchema函数一样?
有什么特别的事情需要做吗?我觉得这个mapPropsToValues()
函数正在工作,从查看它正在填充我传递表单的值的状态对象。我只是不明白为什么似乎跳过了验证?
我已经在这里工作了 2 天,并且无法通过谷歌找到任何好的例子(可能是我的错),所以任何帮助都将不胜感激。
到目前为止,供参考的是测试文件:
这是我的withFormik()
功能:
typescript - 如何使用 Jest 和 Enzyme 在 React (Native) 中给定父组件的功能来测试组件?
我正在构建一个 React Native 应用程序,并且我正在使用 Jest 和 Enzyme 进行单元测试。此外,我正在使用 TypeScript。
我使用Formik构建以下表单。
如您所见,它只是一个简单的形式。我现在想测试<Formik />
组件 get 是否通过renderForm()
and handleSubmit
,所以我编写了以下测试:
对于renderForm()
. 不幸的是,这会引发错误:
因此,我不确定如何正确测试该功能是否已传递给组件。如何做到这一点?
我发现有一种方法可以工作,即将函数传递给<Formik />
这样的:
然后只是:
问题是我过去的单元测试遇到了麻烦,当时我刚刚通过了这样的函数。这样我也失去了 TypeScript 的类型。有没有办法让我最初的尝试奏效”
typescript - 使用 Jest 和 Enzyme 测试 FaC 时未找到 React Node 节点
我正在用 React Native 构建一个应用程序。我们最近开始在应用程序中使用 TypeScript,我的任务是迁移单元测试。有一个测试奇迹般地失败了。
该应用程序有一个<LoginForm />
使用Formik。
这是单元测试查找 Function as Child 的方式renderForm()
:
问题是,当这个测试通过时,.js
它在.tsx
.
怎么可能,Enzyme 突然找不到节点了?我什至尝试导入 components View
,Button
并Input
直接将其传递给find()
而不是字符串,但它并没有改变任何东西。我究竟做错了什么?
mysql - 使用formik自定义验证检查MySQL数据库中的数据
任务:
在我的应用程序中,我想输入数据库中已经存在的用户名,并在表单字段中出现红色错误,例如“用户名必须是唯一的。
是否可以编写一些自定义验证以确保 formik 首先检查 MySQL 数据库,以查看该用户名是否存在于数据库中?
reactjs - 具有两个“主从”选择的 Formik
我有一个有两个选择的表格。它们中的每一个都是一个 react-select,作为用户定义的组件传递给 Field 组件。
现在,我想在项目更改时更改任务列表。问题是:在项目的 onChange 中,我只收到 formik 的 {options, field, form} - 它们都没有引用 _TaskForm。我想访问它,以便更新任务选择的选项。
当项目的价值发生变化时,如何访问 _TaskForm?任何帮助,将不胜感激!