-2
votes

l'historique n'est pas défini dans Reactjs

J'ai importé l'histoire comme ça.

TypeError: history is undefined

J'essaye d'utiliser l'histoire comme ça

export const login = ( value, history ) => dispatch => { 
    //some code
    history.push('/dashboard');
  }
  else {
    //some code
  }
export default { login};

Mais j'obtiens une erreur comme ci-dessous

import { Route , withRouter,history} from 'react-router-dom';

entrez la description de l'image ici


9 commentaires

À quoi vous attendez this vous dans ce contexte?


Merci @jonrsharpe. En fait, j'ai obtenu cette solution de cette question. stackoverflow.com/questions/34595890/...


Cela a été écrit dans le contexte d'un composant de classe, que vous ne semblez pas avoir.


Merci @jonrsharpe. Auparavant, dans un autre projet, j'utilisais history.push('/dashboard'); et cela fonctionnait. Mais dans ce projet, cela ne fonctionne pas. Merci.


Ensuite, donnez un exemple reproductible minimal pour montrer d'où vous vous attendez à obtenir l'historique, mais cela ne fonctionnera certainement pas dans une fonction de flèche.


@jonrsharpe. Vous pouvez utiliser ce code import Auth from '../../services/Auth'; import jwtDecode from 'jwt-decode'; import setAuthToken from '../../services/setAuthToken'; import { Route , withRouter,history} from 'react-router-dom'; export const login = ( value, history ) => dispatch => { //some code history.push('/dashboard');}; export default { login};


Modifiez la question, mettez à jour l'erreur et expliquez d'où vous pensez que ces arguments vont provenir.


Donc encore; D'où pensez-vous que ces arguments vont venir? Ce n'est pas un exemple reproductible minimal jusqu'à ce que d'autres personnes puissent recréer votre problème.


@abuabu scr/pages/Login.js contenu de scr/pages/Login.js ici. Assurez-vous que ce composant reçoit la propriété d' history de son parent, ou mieux de withRouter HOC.


3 Réponses :


1
votes

Puisque le créateur de l'action de login n'est qu'une fonction (pas une classe ni une fonction liée), this n'est pas défini.

Essayez d'utiliser un argument tel que history.push(...) .


2 commentaires

Merci @amankkg. J'obtiens cette erreur ( i.stack.imgur.com/mIWff.png ) si j'utilise history.push(...). Merci.


a ajouté un commentaire sous votre question. Quoi qu'il en soit, il y a un problème d' history passant du routeur à votre composant.



1
votes

Effacer la valeur, l'historique et écrire des accessoires à la place, pourrait aider car l'histoire est à l'intérieur des accessoires

export const login = ( props ) => dispatch => {


0 commentaires

0
votes

à la place, importez l'historique essayez

import {useHistory} from "react-router-dom";
let history=useHistory();
history.push("/");


0 commentaires