⊗jsnxPmRtNFP 23 of 57 menu

Erro de Parâmetro Inválido no NextJS

Nas lições anteriores, retornamos 404 erro no caso em que a rota para a URL fornecida não foi encontrada. No entanto, no caso de uma rota dinâmica, pode surgir uma situação em que a rota existe, mas o valor do parâmetro está incorreto.

Vamos ver um exemplo. Suponha que temos uma rota com a seguinte aparência: /user/:id.

Suponha também que temos um objeto com usuários:

let users = { 1: 'user1', 2: 'user2', 3: 'user3', 4: 'user4', 5: 'user5', };

Suponha que queremos exibir o usuário pelo seu ID:

export default function User({ params }) { return <p> { users[params.id] } </p>; }

Obviamente, o ID na URL não pode ser qualquer um, mas apenas uma das chaves do nosso objeto. A tentativa de acessar um endereço inexistente /user/6 deve resultar na exibição de um erro. Vamos corrigir o código do nosso componente e exibir um texto de erro:

export default function User({ params }) { if (users[params.id]) { return <p> { users[params.id] } </p>; } else { return <p> usuário não encontrado </p>; } }

No entanto, isso não é suficiente. Pois, neste caso, estamos acessando uma página inexistente, e, portanto, devemos retornar o status HTTP 404. Isso é feito usando uma função especial notFound, integrada ao NextJS.

Vamos importar esta função:

import { notFound } from 'next/navigation';

E agora vamos chamá-la no caso em que o valor do parâmetro é inválido:

export default function User({ params }) { if (users[params.id]) { return <p> { users[params.id] } </p>; } else { return notFound(); } }

O código completo do nosso componente terá a seguinte aparência:

import { notFound } from 'next/navigation'; let users = { 1: 'user1', 2: 'user2', 3: 'user3', 4: 'user4', 5: 'user5', }; export default function User({ params }) { if (users[params.id]) { return <p> { users[params.id] } </p>; } else { return notFound(); } }

Resolva o problema descrito em seus componentes.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar