未处理的拒绝TypeError:注册不是函数

如何解决未处理的拒绝TypeError:注册不是函数

在启动 onSubmit 时为 register 获取错误。过去几天我一直在尝试调试它,甚至还尝试了第二组眼睛,但没有运气。

到目前为止,我尝试过的解决方包括检查 register 是否正确导出,检查解构是否正确处理,以及我是否使用正确的语法调用函数。每一个似乎都检查出来了,这让我很困惑,不知道如何解决这个问题。

控制台错误

Uncaught (in promise) TypeError: register is not a function
    onSubmit Register.js:30
    onSubmit Register.js:39

设置注册

import axios from 'axios'
import { setAlert } from './alert'
import {
  REGISTER_SUCCESS,REGISTER_FAIL,} from './types'


// Register user
export const register = ({ name,email,password }) => async dispatch => {
  const config = {
    headers: {
      'Content-Type': 'application/json'
    }
  }

  const body = JSON.stringify({ name,password })

  try {
    const res = await axios.post('/u',body,config)

    dispatch({
      type: REGISTER_SUCCESS,payload: res.data
    })

    // dispatch(loadUser())
  } catch (err) {
    const errors = err.response.data.errors

    if (errors) {
      errors.forEach(error => dispatch(setAlert(error.msg,'danger')))
    }

    dispatch({
      type: REGISTER_FAIL
    })
  }
}

报名表:

import { connect } from 'react-redux'
import axios from 'axios'
import { Container,Form,Col,Row,Button } from 'react-bootstrap'
import { Link } from 'react-router-dom'
import { setAlert } from '../actions/alert'
import { register } from '../actions/auth'
import PropTypes from 'prop-types'

export const Register = ({ setAlert,register }) => {

  const [ formData,setFormData ] = useState({
    firstName: '',lastName: '',username: '',email: '',password: '',password2: ''
  })

  const { firstName,lastName,username,password,password2 } = formData

  const onChange = e => setFormData({ ...formData,[ e.target.name ]: e.target.value })

  const onSubmit = async e => {
    e.preventDefault()
    if (password !== password2) {
      setAlert('Passwords do not match','danger')
    } else {
      register({ firstName,password })
    }
  }

  return (
    <>
      <h4 className="text-center my-3">Create account</h4>
      <Container className="d-flex mx-auto justify-content-center bottomPaddingGap">
        <Row className="d-flex flex-column">
          <Form onSubmit={e => onSubmit(e)}>
            <Row>
              <Col md="auto">
                <Form.Group className="mt-3">
                  <Form.Label>First name</Form.Label>
                  <Form.Control
                    required
                    type="text"
                    name="firstName"
                    placeholder="John"
                    value={firstName}
                    onChange={e => onChange(e)}
                  />
                </Form.Group>
              </Col>
              <Col md="auto">
                <Form.Group className="mt-3">
                  <Form.Label>Last name</Form.Label>
                  <Form.Control
                    required
                    type="text"
                    name="lastName"
                    placeholder="Doe"
                    value={lastName}
                    onChange={e => onChange(e)}
                  />
                </Form.Group>
              </Col>
            </Row>
            <Row>
              <Col md="auto">
                <Form.Group className="mt-3">
                  <Form.Label>Email</Form.Label>
                  <Form.Control
                    required
                    type="email"
                    name="email"
                    value={email}
                    onChange={e => onChange(e)}
                  />
                </Form.Group>
              </Col>
              <Col md="auto">
                <Form.Group className="mt-3">
                  <Form.Label>Username</Form.Label>
                  <Form.Control
                    required
                    type="text"
                    name="username"
                    placeholder="@"
                    value={username}
                    onChange={e => onChange(e)}
                  />
                </Form.Group>
              </Col>
            </Row>
            <Row>
              <Col md="auto">
                <Form.Group className="mt-3">
                  <Form.Label>Password</Form.Label>
                  <Form.Control
                    required
                    type="password"
                    name="password"
                    minLength="6"
                    value={password}
                    onChange={e => onChange(e)}
                  />
                </Form.Group>
              </Col>
              <Col md="auto">
                <Form.Group className="mt-3">
                  <Form.Label>Confirm password</Form.Label>
                  <Form.Control
                    required
                    type="password"
                    name="password2"
                    minLength="6"
                    value={password2}
                    onChange={e => onChange(e)}
                  />
                </Form.Group>
              </Col>
            </Row>
            <Form.Group className="mt-3">
              <Form.Control
                type="submit"
                value="Create your account"
                className="btn btn-primary"
              />
            </Form.Group>
          </Form>
          <div className="text-center mt-3 border-top">
            <p className="text-muted pt-3 mb-1">Already have an account?</p>
            <Link to="/login" className="noDecor">
              <div className="d-grid gap-2">
                <Button variant="secondary">Log In</Button>
              </div>
            </Link>
          </div>
        </Row>
      </Container>
    </>
  )
}

Register.propTypes = {
  setAlert: PropTypes.func.isrequired,register: PropTypes.func.isrequired
}

export default connect(null,{ setAlert,register })(Register)```


  [1]: https://i.stack.imgur.com/5bGce.png

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?