1
resposta

[Sugestão] Evento de clique apenas no Botão

Olá,

Vi que o evento de OnClick para voltarmos à página anterior, estava aplicada em toda div que tem a classe className={styles.botaoContainer}, fazendo com que ao clicar em qualquer lugar dela, a ação do click acionaria a função para voltar a página.

Como alternativa, alterei os arquivos index.js do BotaoPrincipal e NaoEncontrada da seguinte maneira:

BotaoPrincipal : criei a função voltarPagina() que retorna navegar(-1). Feito isso, mando como prop para o componente BotaoPrincipal, assim: acao={voltarPagina}.

export default function NaoEncontrada() {

    const navegar = useNavigate()

    function voltarPagina() {
        return navegar(-1)
    }

    return (
        <>
            <div className={styles.conteudoContainer}>
                <span className={styles.texto404}>404</span>
                <h1 className={styles.titulo}>Ops! Página não encontrada.</h1>
                <p className={styles.paragrafo}>
                    Tem certeza de que era isso que você estava procurando?
                </p>
                <div className={styles.botaoContainer}>
                    <BotaoPrincipal tamanho="lg" acao={voltarPagina}>
                        Voltar
                    </BotaoPrincipal>
                </div>
            </div>

            <div className={styles.espacoEmBranco}>

            </div>
        </>
    )
}

NaoEncontrada: basta receber a prop acao e acionar o evento OnClick nela.

export default function BotaoPrincipal({ children, tamanho, acao }) {
    return (
        <button className={`${styles.botaoPrincipal} ${styles[tamanho]}`} onClick={acao}>
            {children}
        </button>
    )
}
1 resposta

Oi Jobe, tudo bem?

Essa é uma ótima solução! Parabéns pela criatividade e por ter encontrado uma alternativa para o problema.

E muito obrigada por compartilhar com a gente o seu código, assim outras pessoas podem se inspirar com sua sugestão. :D

Sua contribuição com o fórum é essencial.

Um abraço e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software