即使正确导入后,函数也不会在 reactJs 中读取

Function is not getting read in reactJs even after proper import

我正在处理一项涉及 MERN 堆栈中的简单身份验证应用程序的作业。一切都已设置,当我从另一个文件调用 UpdateUser 函数时出现一个问题,它没有被 React 获取 read/recognized。此外,当我从同一个文件导入另一个函数时,即 logoutUser,它工作得很好。 Dashboard.js-导入函数的文件

import React, { Component } from "react";
import PropTypes from "prop-types";
import { connect } from "react-redux";
import { logoutUser } from "../../actions/authActions";
import { UpdateUser } from "../../actions/authActions";
import classnames from "classnames";
import M from "materialize-css";
import "react-phone-number-input/style.css";

class Dashboard extends Component {
  constructor() {
    super();
    this.state = {
      age: "",
      gender: "",
      dob: "",
      mobile: "",
      errors: {},
    };
    this.onValueChange = this.onValueChange.bind(this);
  }
  componentWillReceiveProps(nextProps) {
    if (nextProps.errors) {
      this.setState({
        errors: nextProps.errors,
      });
    }
  }

  onChange = (e) => {
    this.setState({ [e.target.id]: e.target.value });
  };
  onValueChange(event) {
    this.setState({
      selectedOption: event.target.value,
      gender: event.target.value,
    });
    console.log(this.state.selectedOption);
  }
  onDateChange = (val) => {
    val = val.toString();
    this.setState({ dob: val });
    console.log(val, typeof val);
  };
  onMobileChange = (value) => {
    this.setState({ mobile: value });
    console.log(this.state.mobile);
  };
  onUpdateClick = (e) => {
    e.preventDefault();
    const UpdatedUser = {
      id: this.props.auth.user.id,
      age: this.state.age,
      gender: this.state.gender,
      dob: this.state.dob,
      mobile: this.state.mobile,
    };
    console.log(UpdatedUser);
    this.props.UpdateUser(UpdatedUser, this.props.history);
  };
  onLogoutClick = (e) => {
    e.preventDefault();
    this.props.logoutUser();
  };
  componentDidMount() {
    var context = this;
    var options = {
      defaultDate: new Date(),
      setDefaultDate: true,
      onSelect: function(date) {
        context.onDateChange(date);
        // Selected date is logged
      },
    };
    var elems = document.querySelector(".datepicker");
    var instance = M.Datepicker.init(elems, options);
    // instance.open();
    instance.setDate(new Date());
  }
render(){
return(JSX)
}

authActions.js- 导入函数的文件

import axios from "axios";
import setAuthToken from "../utils/setAuthToken";
import jwt_decode from "jwt-decode";

import { GET_ERRORS, SET_CURRENT_USER, USER_LOADING } from "./types";

// Register User
export const registerUser = (userData, history) => (dispatch) => {
  axios
    .post("/api/users/register", userData)
    .then((res) => history.push("/login"))
    .catch((err) =>
      dispatch({
        type: GET_ERRORS,
        payload: err.response.data,
      })
    );
};
//Update User
export const UpdateUser = (userData, history) => (dispatch) => {
  axios
    .post("/api/users/update", userData)
    .then((res) => history.push("/login"))
    .catch((err) =>
      dispatch({
        type: GET_ERRORS,
        payload: err.response.data,
      })
    );
};
// Login - get user token
export const loginUser = (userData) => (dispatch) => {
  axios
    .post("/api/users/login", userData)
    .then((res) => {
      // Save to localStorage

      // Set token to localStorage
      const { token } = res.data;
      localStorage.setItem("jwtToken", token);
      // Set token to Auth header
      setAuthToken(token);
      // Decode token to get user data
      const decoded = jwt_decode(token);
      // Set current user
      dispatch(setCurrentUser(decoded));
    })
    .catch((err) =>
      dispatch({
        type: GET_ERRORS,
        payload: err.response.data,
      })
    );
};

// Set logged in user
export const setCurrentUser = (decoded) => {
  return {
    type: SET_CURRENT_USER,
    payload: decoded,
  };
};

// User loading
export const setUserLoading = () => {
  return {
    type: USER_LOADING,
  };
};

// Log user out
export const logoutUser = () => (dispatch) => {
  // Remove token from local storage
  localStorage.removeItem("jwtToken");
  // Remove auth header for future requests
  setAuthToken(false);
  // Set current user to empty object {} which will set isAuthenticated to false
  dispatch(setCurrentUser({}));
};

还有一件事要补充,当我直接调用该函数而不是使用 this.props.UpdateUser 时,它会被 React 识别并且错误也消失了但是函数内容未执行。 请帮忙,我没有太多时间提交这个项目

您的导入均未在此文件中执行任何操作。他们永远不会被召唤。被调用的是类似的函数,这些函数作为 props 从某个父组件传递给这个组件。在您的父组件中,您正在传递 logoutUser 但忘记传递 updateUser。找到导入logoutUser的根文件,添加updateUser