小编Mat*_*mes的帖子

如何在提交处理程序之外运行setSubmitting()?

我正在尝试实施https://www.youtube.com/watch?v=5gl3cCB_26M上描述的方法 ,其中所有Redux动作都只是普通对象(按原样),API调用由中间件完成。

这样一来,已分派的动作将不再受到重击,并且不会返回Promise。因此,我将无法在提交处理程序中使用Formik setSubmitting(将isSubmitting标记设置为false),就像Formik文档中的代码示例以及我发现的其他教程一样。

我已经通过某种丑陋的方式解决了该问题,并保存了setSubmitting稍后运行它的参考componentDidUpdate

import React, { Component } from 'react'
import { Redirect } from 'react-router-dom'

import LoginForm from 'path/to/LoginForm'
import validationSchema from 'path/to/LoginForm/validationSchema'

import { login } from 'path/to/actionCreators'

const initialValues = {
  email: '',
  password: '',
}

class LoginPage extends Component {
  componentDidUpdate() {
    const { auth } = this.props

    if (!auth.isProcessing && this.setSubmitting) {
      this.setSubmitting(false)
    }
  }

  onSubmit = (values, { setSubmitting …
Run Code Online (Sandbox Code Playgroud)

middleware reactjs redux formik

9
推荐指数
3
解决办法
2294
查看次数

标签 统计

formik ×1

middleware ×1

reactjs ×1

redux ×1