Я пытаюсь настроить простую форму с использованием редукционной формы. Прямо сейчас у меня есть кнопка, которая должна отправить действие. Я вижу действие SET_SUBMIT_SUCCEEDED, поэтому я знаю, что форма отправлена успешно, и я вижу, что функция onSubmit, которую я указал, вызывается, но она не отправляет действие.Redux Form v6 - функция onSubmit, вызывающая, но не отправляющая действие
// root reducer
import { combineReducers } from 'redux'
import { reducer as reduxFormReducer } from 'redux-form'
import login from './login'
export default combineReducers({
login,
form: reduxFormReducer
})
// action-creator
import { createAction } from './create_action'
import { postJson } from './fetch'
import {
LOGIN_ERROR,
LOGIN_REQUEST,
LOGIN_SUCCESS
} from '../constants/constants'
const login =() => {
return function (dispatch) {
dispatch(createAction(LOGIN_REQUEST))
return postJson('/login')
.then(res => res.json())
.then(data =>
dispatch(createAction(LOGIN_SUCCESS, { data }))
)
.catch(error => dispatch(createAction(LOGIN_ERROR, { error })))
}
}
//component
import React from 'react'
import { reduxForm } from 'redux-form'
import login from '../redux/submit-handlers/login'
const Login = (props) => {
const { handleSubmit } = props
return (
<form onSubmit={handleSubmit}>
<h3>Login</h3>
<button>Login</button>
</form>
)
}
export default reduxForm({
form: 'login',
onSubmit: login
})(Login)
//create_action
export const createAction = (type, payload) => {
return {
type,
payload
}
}
У меня не было проблем с отправкой действий с использованием этого подхода в других компонентах. У меня должно быть что-то неправильно с редуксом, но я чувствую, что делаю это так, как описано в примерах.
Если я прохожу функцию входа вниз в реквизите и передать его в handleSubmit
как этот
<form onSubmit={handleSubmit(() => {login()})}>
onSubmit функция вызывается, но она вызывается перед SET_SUBMIT_SUCCEEDED
который заставляет меня думать, что любая проверка я добавляю бы не работать, и он все равно подчинится.
Не могли бы вы показать, какие действия были отправлены и в каком порядке. Результат от redux-devtools был бы отличным. Кроме того, откуда происходит 'SET_SUBMIT_SUCCEEDED'? –
После нажатия кнопки в этом порядке отправляются два действия, redux-form/TOUCH и redux-form/SET_SUBMIT_SUCCEEDED. Ни одно из моих действий LOGIN_xxx не отправляется. – seanyesmunt