10 votes

Gatsby redirige vers la page d'accueil au lieu d'afficher la page 404

Est-il possible de rediriger d'une manière ou d'une autre l'utilisateur vers la page d'accueil ( / ) au lieu d'afficher la page 404 ?

24voto

Charming Robot Points 1067

Les autres réponses ici échoueront éventuellement parce que le window n'est pas défini au moment de la construction. Utilisez ceci à la place. Le site useEffect est équivalent à componentDidMount .

import { useEffect } from 'react';
import { navigate } from 'gatsby';

export default () => {
  useEffect(() => {
    navigate('/your-redirect/');
  }, []);
  return null;
};

7voto

Sid Points 71

Vous pouvez procéder comme suit :

import React from 'react'
import { Redirect } from '@reach/router'

const NotFoundPage = () => <Redirect to="/" />

export default NotFoundPage

5voto

Gokhan Sari Points 1473

Gatsby crée une page 404 à partir de src/pages/404.jsx (ou 404.js si vous n'utilisez pas jsx extension). Ainsi, la création d'un composant qui redirige vers la page d'accueil devrait faire l'affaire, quelque chose comme ceci :

import React from 'react';

export default function NotFound() {
  if (typeof window !== 'undefined') {
    window.location = '/';
  }

  return null;
}

1voto

Rafaell Lycan Points 11

Vous pouvez également le faire avec navigate() (anciennement navigateTo() , merci @pgarciacamou)

import React from 'react'
import { navigate } from 'gatsby'

const NotFoundPage = () => {
  return navigate('/')
}

export default NotFoundPage

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