_this2.props.signup不是React Redux应用程序中的函数

时间:2018-07-17 07:33:03

标签: javascript reactjs redux

请注意,我已经检查了this个问题的答案,似乎没有任何作用。

我正在使用this回购作为样板。我正在尝试将用户名和带有firebase auth userid的电子邮件而不是firebase数据库发送到节点服务器。我创建了一个动作创建者signup来解决这个问题。

这是signup.js动作的创建者

import * as types from '../constants/action_types';
import axios from 'axios';

export const signup = (user) => {
    console.log(user);
    return async dispatch => {
       try {
        const response = await axios.get('http://localhost:5000/api/user/register', user)
        const data = await {response};
        dispatch({
            type : types.SIGN_UP,
            payload : data.fromback
        })
       } catch (error) {
           console.lot(error)
        }
    }
}

然后我将其与具有mapDispatchToProps的组件连接起来,因此,在SignUpPage组件下,React开发工具将{​​{1}}显示为一个函数。但是当它被触发时,它会给出一个错误,提示signup为什么会这样?

这是我的_this2.props.signup is not a function组件

SignUpPage

1 个答案:

答案 0 :(得分:1)

它不是道具, 您已将其作为函数导入, 您可以直接将其用作此类功能

import {signup} from './../../actions/signup';
.....
auth.doCreateUserWithEmailAndPassword(email, passwordOne)
  .then(authUser => {
    const userid = authUser.user.uid;
    const user = { email, userid };
    signup(user);

  })
  .catch(error => {
    this.setState(updateByPropertyName('error', error));
  });