Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React-Redux |未处理的拒绝(TypeError):无法读取属性';数据';未定义的_Javascript_Reactjs_Redux_React Redux - Fatal编程技术网

Javascript React-Redux |未处理的拒绝(TypeError):无法读取属性';数据';未定义的

Javascript React-Redux |未处理的拒绝(TypeError):无法读取属性';数据';未定义的,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,一切正常,直到登录>调度>有效负载:err.response.data。然后给出一个错误: 未处理的拒绝(TypeError):无法读取未定义的属性“data” 我查了很多资料,但找不到有什么问题。 在寄存器中,有效负载:err.response.data工作正常。但是 在登录中,给出此错误 import axios from "axios"; import setAuthToken from "../utils/setAuthToken"; import jwt_decode from "jw

一切正常,直到登录>调度>有效负载:err.response.data。然后给出一个错误: 未处理的拒绝(TypeError):无法读取未定义的属性“data” 我查了很多资料,但找不到有什么问题。 在寄存器中,有效负载:err.response.data工作正常。但是 在登录中,给出此错误

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

import { GET_ERRORS, SET_CURRENT_USER } 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
      })
    );
};

// Login - Get User Token
export const loginUser = userData => dispatch => {
  axios
    .post("/api/users/login", userData)
    .then(res => {
      // Save to localStorage
      const { token } = res.data;
      // Set token to ls
      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
  };
};

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

看起来不错,不过我会试试这个:

  • 每当服务器启动错误时,请确保发出以下对象:

    response.json({response:{data:“Error…”})

  • 否则,请在登录用户功能中检查未定义的对象:

    payload:((err |{}).response | |{}).data | | Error unexpected'

    这将在具有未定义的值之前检查嵌套对象

    选自


  • 您是否尝试过在发送前输入console.log并查看err?您好@MarcelT,我试过console.log。它说未定义。但它不能走到正确的方向:“/dashboard”。嗨,对象未定义。我试过你的2。代码。而且开发服务器没有启动。React可能有问题吗?嗨,我想你可能在React中有另一个问题,这就是为什么你的服务器没有启动。在这里张贴错误,如果你有它!哇!我修好了。我重试你的2。代码。说明:警告:失败的道具类型:提供给
    登录
    字符串
    类型的无效道具
    错误
    ,应为
    对象
    。in Login(由Connect(Login)创建in Login(由Route创建)in Route(在App.js:28)in div(在App.js:23)in Router(由BrowserRouter创建)in BrowserRouter(在App.js:22)in Provider(在App.js:21)in App(在src/index.js:7)恭喜!但我不知道你期望的是一个对象,而不是一个“意外错误”的文本。没关系:)