Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

130
Visualizações
¿Por qué cambia el valor de retorno cuando uso el componente React-icon para mi botón?

Quiero eliminar una lista y diseñar ese botón con un icono. Si solo tengo "eliminar" como mi botón, mi onClick devuelve la ID como se esperaba. Sin embargo, cuando trato de usar un componente para mi botón, devuelve un objeto extraño.

Intenté usar diferentes elementos en lugar de un <Button/> y diferentes bibliotecas de íconos, pero el resultado es el mismo. Así es como estaba importando el componente y estoy usando componentes con estilo si eso importa

 import React from "react"; import { Draggable } from "react-beautiful-dnd"; import {BsXCircle} from "react-icons/bs" import styled from 'styled-components'

A continuación se muestra mi código para mi componente que representa el título de la lista y un botón que eliminaría la lista:

 <div {...provided.draggableProps} {...provided.dragHandleProps} ref={provided.innerRef}> <div value={props.list._id} onClick = {props.handleListSelect} className="list"> <button value={props.list._id} onClick={props.handleDeleteList} > <BsXCircle/> </button> {props.list.title} </div> </div>

El fragmento de código a continuación funciona como se esperaba.

 <button value={props.list._id} onClick={props.handleDeleteList} > delete </button>

Mi función props.handleDeleteList está a continuación:

 const deleteList = async (e) =>{ console.log(e.target.value) }

Si uso <BsXCircle/> , el registro de mi consola es este:

{stringValue: '"undefined"', valueType: 'string', kind: 'ObjectId', value: 'undefined', path: '_id', …}

Estoy confundido de por qué está sucediendo esto....

¿No está asignado el valor que estoy pasando en el atributo de valor de mi botón? ¿Por qué la representación de un componente en lugar de un texto cambia el valor de mi botón?

He simplificado mi código solo por hacer esta pregunta. Agradecería cualquier comentario, incluso sobre formas de mejorar al hacer preguntas. Gracias de antemano :)

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

En primer lugar, el elemento <button/> debe aceptar solo ciertos tipos de elementos anidados: ref MDN

Contenido permitido Contenido de fraseo pero no debe haber contenido interactivo

Dicho esto, su problema es que los elementos anidados de <button/> heredan sus detectores de eventos, por lo que cuando anida el Componente de icono de reacción (un <svg> supongo) y hace clic en el botón, básicamente está enviando el evento de clic en el svg y no en el <button/> . Puede abordar el problema con una simple corrección de css:

 button > * { pointer-events: none; }

De esta manera, está deshabilitando todos los detectores de eventos en los elementos secundarios del botón y debería solucionarlo.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda