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

128
Visualizações
Múltiples botones de readmore trabajando al mismo tiempo

Buenos días.

Estoy tratando de usar los botones "leer más" en los textos que provienen de la tienda de fuego

 <section className="escritos"> {escritos.map(escrito => { return ( <div> <p> Autor: <strong>{escrito.autor}</strong> </p> <p> {" "} Título: <strong>{escrito.titulo}</strong> </p> <div id="obras"> {" "} {readmore ? parse(escrito.escrito) : parse(escrito.escrito.substring(0, 200))} <button id="readmore" onClick={() => setReadmore(!readmore)}> {readmore ? "ler menos" : "ler mais"} </button> <Link to="#beginning"> <BsFillArrowUpCircleFill /> </Link> </div> <hr /> </div> ); })} </section>

Esta funcionando. Pero funciona al mismo tiempo para todos los botones.

Ya intenté usar react-read-more , pero hubo un error porque tengo que usar parse(escrito.escrito) para eliminar las etiquetas html. Eliminando el análisis, funciona pero mostrando las etiquetas.

Tiene algo que ver con el mapa , creo, pero aún no he podido resolverlo.

Aquí está el sitio y aquí está el repositorio si ayuda.

Gracias de antemano por su atención y su tiempo.

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

0

Dado que desea que el estado de readmore se aplique a los cuadros individuales, puede almacenar una matriz en el estado y verificar si la id está configurada, pero yo elegiría (en mi opinión) la forma más simple:

Extraiga su bloque en su propio componente, que tiene su propio estado readmore como este:

 <section className="escritos"> {escritos.map(escrito => ( <Escrito escrito={escrito} key={escrito.id} /> ))} </section> // Escrito.jsx const Escrito = ({escrito}) => { const [readmore, setReadmore] = useState(false); return ( <div> <p> Autor: <strong>{escrito.autor}</strong> </p> <p> {" "} Título: <strong>{escrito.titulo}</strong> </p> <div id="obras"> {" "} {readmore ? parse(escrito.escrito) : parse(escrito.escrito.substring(0, 200))} <button id="readmore" onClick={() => setReadmore(!readmore)}> {readmore ? "ler menos" : "ler mais"} </button> <Link to="#beginning"> <BsFillArrowUpCircleFill /> </Link> </div> <hr /> </div> ); } export default Escrito;

Dado que cada componente ahora tiene su propio estado, este debería ser el comportamiento que desea.

about 4 years ago · Juan Pablo Isaza Relatório

0

El elemento principal devuelto por escritos.map(escrito => {JSX}) debe contener un atributo clave con un valor único. Leer más aquí

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