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';
3 Réponses :
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(...) .
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.
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 => {
à la place, importez l'historique essayez
import {useHistory} from "react-router-dom";
let history=useHistory();
history.push("/");
À quoi vous attendez
thisvous 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.jscontenu descr/pages/Login.jsici. Assurez-vous que ce composant reçoit la propriété d'historyde son parent, ou mieux dewithRouterHOC.