- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<Formik
isInitialValid
initialValues={{ first_name: 'Test', email: 'test@mail.com' }}
validate={validate}
ref={node => (this.form = node)}
onSubmitCallback={this.onSubmitCallback}
render={formProps => {
const fieldProps = { formProps, margin: 'normal', fullWidth: true, };
const {values} = formProps;
return (
<Fragment>
<form noValidate>
<TextField
{...fieldProps}
required
autoFocus
value={values.first_name}
type="text"
name="first_name"
/>
<TextField
{...fieldProps}
name="last_name"
type="text"
/>
<TextField
{...fieldProps}
required
name="email"
type="email"
value={values.email}
/>
</form>
<Button onClick={this.onClick}>Login</Button>
</Fragment>
);
}}
/>
我正在尝试这个解决方案 https://github.com/jaredpalmer/formik/issues/73#issuecomment-317169770但它总是返回给我 Uncaught TypeError: _this.props.onSubmit is not a function
当我尝试 console.log(this.form)
时,有 submitForm
函数。
大家有什么解决办法吗?
<小时/>- Formik 版本:最新- react 版本:v16- 操作系统:Mac操作系统
最佳答案
对于那些想知道通过 React hooks 解决方案的人来说:
Formik 2.x, as explained in this answer
// import this in the related component
import { useFormikContext } from 'formik';
// Then inside the component body
const { submitForm } = useFormikContext();
const handleSubmit = () => {
submitForm();
}
请记住,该解决方案仅适用于 Formik 组件内部的组件,因为它使用上下文 API。如果出于某种原因您想从外部组件或实际使用 Formik 的组件手动提交,您实际上仍然可以使用 innerRef
Prop 。
太长了;如果您提交的组件是 <Formik>
的子组件,则此上下文答案就像一个魅力。或withFormik()
组件,否则,使用 innerRef
答案如下。
Formik 1.5.x+
// Attach this to your <Formik>
const formRef = useRef()
const handleSubmit = () => {
if (formRef.current) {
formRef.current.handleSubmit()
}
}
// Render
<Formik innerRef={formRef} />
关于reactjs - React Formik 在<Formik/>之外使用submitForm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49525057/
下面的示例是否意味着表单将提交两次? function submitForm(){ document.myForm.submit(); } 我有一个错误,有时会记录每条记录中的两个。我怀疑它是
我想知道这两种方法哪种更快: 在一条语句中选择容器和表单本身: jQuery $('#submitForm form') 或者使用 jQuery 的 .find() 选择器: jQuery $('#s
我在个人资料页面中实现了预览按钮和保存按钮,将表单提交到两个不同的页面。一个带有保存数据的代码,另一个是假页面,显示的信息与原始页面将显示的信息相同。这是代码 function submitFo
我是 Yii 新手,当我单击提交按钮时,出现错误“未捕获的类型错误:无法读取未定义的属性‘submitForm’”这是我的代码 查看页面
我正在使用 react 钩子(Hook)和 useRef 从父级调用子方法(请参见此处:Call child method from parent) 具体来说,我正在尝试从我的父组件调用位于我的子组件
我在思考 coldfusion.ajax.submitform 时遇到了真正的麻烦。我有对我的 cfc 的调用工作,数据被保存到我的数据库,但是我没有收到(或没有正确设置)一种方法来接收方法调用成功的
我被难住了。我有一个 我正在使用 cfc 和 Coldfusion.Ajax.submitform 将表单信息保存到数据库中。我的表单使用复选框。我似乎无法弄清楚的是如果未选中复选框如何捕获。我读过,
我有一个包含多个表单的页面。然后我有一个按钮,它有一个附加到它的 jQuery 单击事件处理程序,它为每个表单调用 ColdFusion.Ajax.submitform()。我的问题是 submitf
也许 Coldfusion 的 Ajax 函数有些问题,但我无法弄清楚这一点...我只是尝试使用 ColdFusion.Ajax.submitForm 发布一些数据,然后将新内容加载到 #CartPo
我正在使用 jquery ui 当我编写以下代码时,悬停工作 Country 但是当我更改以下内容时,悬停不起作用 Country 同样的情况在这里 Country 告诉我
在旧笔记本电脑崩溃后,刚刚在新笔记本电脑上重新安装了所有内容。在此过程中从CF9升级到CF11。在 Windows 10 上运行 IIS。本地站点工作正常,但使用 ajax 提交表单时除外。 Co
在旧笔记本电脑崩溃后,刚刚在新笔记本电脑上重新安装了所有内容。在此过程中从CF9升级到CF11。在 Windows 10 上运行 IIS。本地站点工作正常,但使用 ajax 提交表单时除外。 Co
我是一名优秀的程序员,十分优秀!