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
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 descr/pages/Login.js
ici. Assurez-vous que ce composant reçoit la propriété d'history
de son parent, ou mieux dewithRouter
HOC.