Je suis ce tutoriel (https://www.udemy. com/course/mern-stack-front-to-back/) et créez un site Web mern étape par étape. Tout s'est bien passé jusqu'à "Profile Reducer & Get Current Profile". J'ai ajouté actions/profile.js et reducers/profile.js, etc. Et j'ai l'erreur suivante.

Je pense que mon code est le même que ce que la vidéo a enseigné. Est-ce que quelqu'un sait quel peut être le problème?

enter image description here

Réducteurs/profile.js :

import {
    GET_PROFILE,
    PROFILE_ERROR
  } from "../actions/types";

const initialState = {
  profile: null,
  profiles: [],
  repos: [],
  loading: true,
  error: {}
};

export default function(state = initialState, action) {
  const { type, payload } = action;

  switch (type) {
    case GET_PROFILE:
      return {
        ...state,
        profile: payload,
        loading: false
      };
    case PROFILE_ERROR:
      return {
        ...state,
        error: payload,
        loading: false
      };
    default: 
      return state
  }
}

Actions/profil.js

import axios from "axios";
import { setAlert } from "./alert";

import { GET_PROFILE, PROFILE_ERROR } from "./types";
import { response } from "express";

// Get current users profile
export const getCurrentProfile = () => async dispatch => {
  try {
    const res = await axios.get("/api/profile/me");

    dispatch({
      type: GET_PROFILE,
      payload: res.data
    });
  } catch (err) {
    dispatch({
      type: PROFILE_ERROR,
      payload: { msg: err.response.statusText, status: err.response.status }
    });
  }
};

Tableau de bord.js :

import React, { useEffect } from "react";
import PropTypes from "prop-types";
import { connect } from "react-redux";
import { getCurrentProfile } from "../../actions/profile";

const Dashboard = ({ getCurrentProfile, auth, profile }) => {
  useEffect(() => {
    getCurrentProfile();
  }, []);

  return <div>Dashboard</div>;
};

Dashboard.propTypes = {
  getCurrentProfile: PropTypes.func.isRequired,
  auth: PropTypes.object.isRequired,
  profile: PropTypes.object.isRequired
};

const mapStateToProps = state => ({
  auth: state.auth,
  profile: state.profile
});

export default connect(mapStateToProps, { getCurrentProfile })(Dashboard);
-3
SoftTimur 27 janv. 2020 à 19:09

1 réponse

Meilleure réponse

À en juger par la trace de la pile dans votre capture d'écran, le problème semble être quelque part en relation avec le package express.

D'après les extraits de code que vous avez soumis dans le cadre de la question, seul le fichier : actions/profile.js contient un code relatif à express. Il contient l'instruction import suivante :

import { response } from "express";

Je ne vois pas où vous utilisez response, donc je suppose que vous n'en avez pas besoin - c'est de là que vous avez admis que le problème provenait des commentaires après avoir supprimé cette ligne de code.

1
nopassport1 27 janv. 2020 à 16:48