Я действительно смущен !!
Итак, я отправляю еще одно действие внутри действия:
import * as actionsTypes from '../constants/actionsTypes';
export const loginUserSuccess = userName => ({
type: actionsTypes.LOGIN_SUCCESS,
userName
});
export const loginUserFailed = () => ({
type: actionsTypes.LOGIN_FAILED
});
export const loginUser = userName => dispatch => {
dispatch(loginUserSuccess(userName));
}
Внутри действия loginUser я создам логику, чтобы выбрать, какое действие отправлять. Сейчас это не важно
Вот использование действия loginUser
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { loginUser } from '../../actions';
class loginUserForm extends Component {
state = {
userName: ''
}
inputChangeHandler = event => {
this.setState({ userName: event.target.value })
}
loginUserHandler = event => {
event.preventDefault();
this.props.loginUser(this.state.userName);
}
render() {
return (
<form className="login-user" onSubmit={event => this.loginUserHandler(event)}>
<input type="text" onChange={event => this.inputChangeHandler(event)} />
<input type="submit" value="Login" disabled={this.state.userName.length === 0} />
</form>
)
}
};
const mapDispatchToProps = dispatch => ({
loginUser: userName => dispatch(loginUser(userName))
})
Ничего сверхъестественного :) Но !! У меня ошибка
Действия должны быть простыми объектами. Используйте пользовательское промежуточное программное обеспечение для асинхронного
действия.
Это действительно весело! У меня здесь нет асинхронного кода !!
Что, черт возьми, происходит ...