TypeError: Невозможно прочитать свойство 'then' из undefined в реагирующих реактивных серверах - PullRequest
0 голосов
/ 08 сентября 2018

Это мой loginform.js, я пытаюсь отправить данные, используя состояние. И форма входа получает рендеринга в loginpage.js, как это в loginPage.js отправьте данные в Redx, а затем я нажимаю на страницу ("/"), используя затем.

но проблема в том, что он никогда не перенаправляет на дом, вместо этого он выдает ошибку вроде этой

TypeError: Cannot read property 'then' of undefined
LoginPage._this.submit
C:/projects/login/login-react/src/components/pages/LoginPage.js:11
   8 | import './login.css';
   9 | 
  10 | class LoginPage extends React.Component {
> 11 |   submit = data =>
  12 |     this.props.login(data).then(() => this.props.history.push("/"));
  13 | 
  14 |   render() {
View compiled
LoginForm._this.onSubmit
C:/projects/login/login-react/src/components/forms/LoginForm.js:24
  21 | this.setState({errors});
  22 | if(Object.keys(errors).length === 0) {
  23 |   this.setState({loading: true});
> 24 |   this.props
  25 |     .submit(this.state.data)
  26 |     .catch(err =>
  27 |       this.setState({errors: err.response.data.errors, loading: false})
View compiled
▶ 23 stack frames were collapsed.
This screen is visible only in development. It will not appear if the app crashes in production.
Open your brow

loginPage.js

class LoginPage extends React.Component {
  submit = data =>
    this.props.login(data).then(() => this.props.history.push("/"));

Форма входа. Js

onSubmit = () => {
        const errors = this.validate(this.state.data);
        this.setState({errors});
        if(Object.keys(errors).length === 0) {
          this.setState({loading: true});
          this.props
            .submit(this.state.data)
            .catch(err =>
              this.setState({errors: err.response.data.errors, loading: false})
            );
        }
      };

Вот так выглядит логин

export const login = credentials => dispatch =>{
  api.user.login(credentials).then(user=> {
    localStorage.loginToken = user.token;
    dispatch(userLoggedIn(user));
  });
}

Я хочу знать, есть ли другой способ сделать это или как я могу это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...