34 votes

History.push un lien vers un nouvel onglet avec react router

J'ai besoin d'ouvrir un lien dans un nouvel onglet après avoir effectué une certaine logique.
J'ai un bouton comme celui-ci :

<Button
  onClick={handleSubmit}
>
  Preview
</Button>

avec le handleSubmit() étant :

const history = useHistory();

const handleSubmit = () => {
  console.log("doing something");
  history.push("/some-link") 
}

Comme vous pouvez le constater, dans mon cas d'utilisation, il ne serait pas judicieux d'utiliser la fonction Link composant.

Alors, existe-t-il un moyen de pousser ce lien vers un nouvel onglet, en utilisant seulement history.push()

68voto

MaCadiz Points 909

L'historique de React-router est destiné à être utilisé uniquement pour la navigation de votre application et une certaine persistance. Je ne vois pas pourquoi vous avez besoin de l'utiliser pour ouvrir un nouvel onglet. Je pense que vous devriez utiliser l'objet fenêtre pour cela.

const handleSubmit = () => {
  console.log("doing something");
  const win = window.open("/some-link", "_blank");
  win.focus();
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X