Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

137
Views
Cómo dividir una cadena larga en una cadena de varias líneas, pero la cadena es un valor dentro de un objeto javascript

Estoy creando una página de preguntas frecuentes para un sitio, y en lugar de escribir estáticamente cada pregunta y respuesta en cada componente, decidí crear una matriz de objetos con cada pregunta y respuesta dentro de ella, y luego mapear la matriz para hacer mi el código de reacción se ve más limpio.

Algunas de las respuestas son párrafos, pero quiero dividir algunos de los párrafos en varios párrafos más pequeños.

Probé \n dentro de acentos graves y \n entre comillas simples y dobles, pero el párrafo no se divide en varias líneas en el navegador. ¿Tiene algo que ver con estar dentro de un objeto y por eso no agregará una nueva línea con \n?

Aquí está mi objeto de preguntas frecuentes:

 export const faqData = [{ question: "Can we make this product personalized?", answer: "Yes, all products can be personalized. Please visit our shop page for all personalized options.\n You can view the shop page here." },

Aquí está mi componente:

 import React from "react"; import Title from "./title/Title"; import Questions from "./faqs/Questions"; import { faqData } from "./utils/faqs"; const FAQ = () => { return ( <div className="Div"> <Title /> {faqData.map(({ question, answer }) => ( <Questions question={question} answer={answer} /> ))} </div> ); }; export default FAQ;
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Desafortunadamente, no podemos ver cómo está dividiendo la cadena en el componente Questions con su código mostrado. Debería ser un mapeo bastante simple en string.split('\n') .

En el retorno de su componente Questions , debería verse algo similar a:

 return ( <div className="Questions"> <h2>${props.question}</h2> { props.answer.split('\n').map((paragraph) => { return <p>{paragraph}</p>; } } </div> )

Esto dividirá la answer en una serie de cadenas divididas por \n y luego las asignará a etiquetas de párrafo individuales.

about 4 years ago · Juan Pablo Isaza Report

0

Para una solución diferente para mostrar varias líneas en lugar de \n , puede formatear su answer en HTML (para usar <br /> ) y usar dangerouslySetInnerHTML SetInnerHTML ( advertencia )

 const faqData = [ { question: "1 Can we make this product personalized?", answer: "Yes, all products can be personalized." }, { question: "2 Can we make this product personalized?", answer: "Yes, all products can be personalized. Please visit our shop page for all personalized options.<br /> You can view the shop page here." } ]; const Title = () => <h1>FAQ</h1>; const Questions = ({ question, answer }) => ( <div> <h3>{question}</h3> <p dangerouslySetInnerHTML={{ __html: answer }} /> </div> );

demostración completa

Editar angry-haibt-z4u9bg

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!