问题标签 [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.

0 投票
1 回答
4341 浏览

reactjs - withFormik如何在handleSubmit中访问包装表单的道具

我定义:

然后使用 withFormic 定义 HOC:

在父组件中,我指定了一个回调函数:

现在,我希望 handleSubmit 调用回调函数。我会做的

但似乎this在 HOC 中没有定义。

问题:如何访问 HOC 中的 Form1.props?

0 投票
4 回答
12910 浏览

reactjs - 如何在 React 中使用带有数字输入的占位符?

我有一个如下形式的数字输入:

如何在其上显示占位符短语?

如果我最初设置this.state.weight为 value 0,则不会显示占位符。

如果我将它设置null为占位符显示但收到这个丑陋的警告

警告:valueprop oninput不应为空。考虑使用空字符串来清除组件或 undefined不受控制的组件。

0 投票
3 回答
23090 浏览

reactjs - 使用 YUP 验证文件是否存在

我正在使用Yup来验证我的表单。在我的一种形式中,我想验证一个<input type="file" />是否有文件。

我已经对此进行了测试(但它不起作用):

我在控制台中有以下错误消息:

file 必须是一个object类型,但最终值是:(null从 value 转换{})。如果“null”旨在作为空值,请务必将架构标记为.nullable()

任何想法?

0 投票
2 回答
4971 浏览

reactjs - Formik 和 Semanic UI React。打字延迟,不必要的验证

这是我的动态表单的一个简单示例。

在 Fromik 本身我有简单的 console.log

因此,每次我在字段中输入时,每次按键时,我都会从验证中获取日志结果(我不想要),并且每次按下按键时都会有微延迟。

0 投票
1 回答
3880 浏览

reactjs - 触发“onChange”时,Formik FieldArray 失去焦点

我已按照 Formik 团队成员撰写的文章中的教程进行操作, 但事情并没有按预期工作;每当我在文本输入字段中输入内容时,每次按下它都会失去焦点,我必须一次又一次地单击文本输入字段来写下一个字符。我共享了代码和链接。

这是从文章中获取的代码

0 投票
2 回答
12749 浏览

javascript - 使用 jest/enzyme 对 formik 组件进行单元测试

我整理了一个非常基本的联系表格,效果很好。但是我现在需要开始编写我的单元测试并且我遇到了很多问题(就像我到目前为止只设法让快照测试通过)。

因此,首先我试图测试如果您没有填写所有必需的部分,当您单击提交按钮时表单应该呈现我的验证消息。

handleSubmit()我想我可以通过调用函数 来实现这一点,例如:componentRender.find('Formik').instance().props.handleSubmit(badFormValues, { resetForm });

但是,当我运行时componentRender.debug(),我的验证消息没有被呈现。就像没有调用validationSchema函数一样?

有什么特别的事情需要做吗?我觉得这个mapPropsToValues()函数正在工作,从查看它正在填充我传递表单的值的状态对象。我只是不明白为什么似乎跳过了验证?

我已经在这里工作了 2 天,并且无法通过谷歌找到任何好的例子(可能是我的错),所以任何帮助都将不胜感激。

到目前为止,供参考的是测试文件:

这是我的withFormik()功能:

0 投票
1 回答
1450 浏览

typescript - 如何使用 Jest 和 Enzyme 在 React (Native) 中给定父组件的功能来测试组件?

我正在构建一个 React Native 应用程序,并且我正在使用 Jest 和 Enzyme 进行单元测试。此外,我正在使用 TypeScript。

我使用Formik构建以下表单。

如您所见,它只是一个简单的形式。我现在想测试<Formik />组件 get 是否通过renderForm()and handleSubmit,所以我编写了以下测试:

对于renderForm(). 不幸的是,这会引发错误:

因此,我不确定如何正确测试该功能是否已传递给组件。如何做到这一点?

我发现有一种方法可以工作,即将函数传递给<Formik />这样的:

然后只是:

问题是我过去的单元测试遇到了麻烦,当时我刚刚通过了这样的函数。这样我也失去了 TypeScript 的类型。有没有办法让我最初的尝试奏效”

0 投票
1 回答
949 浏览

typescript - 使用 Jest 和 Enzyme 测试 FaC 时未找到 React Node 节点

我正在用 React Native 构建一个应用程序。我们最近开始在应用程序中使用 TypeScript,我的任务是迁移单元测试。有一个测试奇迹般地失败了。

该应用程序有一个<LoginForm />使用Formik

这是单元测试查找 Function as Child 的方式renderForm()

问题是,当这个测试通过时,.js它在.tsx.

怎么可能,Enzyme 突然找不到节点了?我什至尝试导入 components ViewButtonInput直接将其传递给find()而不是字符串,但它并没有改变任何东西。我究竟做错了什么?

0 投票
1 回答
300 浏览

mysql - 使用formik自定义验证检查MySQL数据库中的数据

任务:

在我的应用程序中,我想输入数据库中已经存在的用户名,并在表单字段中出现红色错误,例如“用户名必须是唯一的。

是否可以编写一些自定义验证以确保 formik 首先检查 MySQL 数据库,以查看该用户名是否存在于数据库中?

0 投票
1 回答
132 浏览

reactjs - 具有两个“主从”选择的 Formik

我有一个有两个选择的表格。它们中的每一个都是一个 react-select,作为用户定义的组件传递给 Field 组件。

现在,我想在项目更改时更改任务列表。问题是:在项目的 onChange 中,我只收到 formik 的 {options, field, form} - 它们都没有引用 _TaskForm。我想访问它,以便更新任务选择的选项。

当项目的价值发生变化时,如何访问 _TaskForm?任何帮助,将不胜感激!