Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

245
Vistas
How to highlight specific <li> element?

i am trying to learn react at the moment and i can't find a solution for following problem:

I am fetching some .json data which look like that:

[ {
"answerOptions": [
  "Answer A",
  "Answer B",
  "Answer C",
  "Answer D",
],
"correctAnswer": 1
},
{
"answerOptions": [
  "Answer A",
  "Answer B",
  "Answer C",
  "Answer D",
  "Answer E",
  "Answer F",
],
"correctAnswer": 4
}, {..}, {..} ]

Now i want to highlight the correct answer (i.e bold) but i don't know how to tell react what li element should be highlighted....

<ol className="answers-list">
 {
    props.answerOptions.map((answer) => (  
       <AnswerDetails 
          key={answer}
          answerOptions={answer}
        /> 
    ))
  }
</ol> 
import './AnswerDetails.css';

const AnswerDetails = (props) => {

    return (
      <li>
       {props.answerOptions}
      </li>
     );
 }

export default AnswerDetails; 

Maybe someone of you has a small hint for me :)

Greetz

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

you can alse add corrent into props.

<ol className="answers-list">
 {
    props.answerOptions.map((answer, index) => (  
       <AnswerDetails 
          key={answer}
          answer={answer}
          index={index}
          corrent={props.correctAnswer}
        /> 
    ))
  }
</ol> 
import './AnswerDetails.css';
import classNames from 'classnames';

const AnswerDetails = (props) => {
  return <li className={classNames({corrent: props.correctAnswer === props.index})>
   {props.answerOptions}
  </li>;
};


export default AnswerDetails; 
about 4 years ago · Juan Pablo Isaza Denunciar

0

Just loop over the items in the array and map them to styled <li> elements.

const { useState } = React;

const answers = [{
  "answerOptions": [
    "Answer A",
    "Answer B",
    "Answer C",
    "Answer D",
  ],
  "correctAnswer": 1
}, {
  "answerOptions": [
    "Answer A",
    "Answer B",
    "Answer C",
    "Answer D",
    "Answer E",
    "Answer F",
  ],
  "correctAnswer": 4
}];

const AnswerDetails = ({ answerOptions, correctAnswer }) => (
  <li>
    <ol className="answers">
      {answerOptions.map((answerOption, index) => (
        <li
          key={answerOption}
          className={index === correctAnswer ? 'correct' : ''}
        >
          {answerOption}
        </li>
      ))}
    </ol>
  </li>
)

const Answers = ({ answers }) => (
  <ol className="question">
    {answers.map(({ answerOptions, correctAnswer }, index) => (
      <AnswerDetails
        key={JSON.stringify(answerOptions)+correctAnswer}
        correctAnswer={correctAnswer}
        answerOptions={answerOptions}
      />
    ))}
  </ol>
);

const App = () => (
  <div>
    <Answers answers={answers} />
  </div>
);

ReactDOM
  .createRoot(document.getElementById("root"))
  .render(<App />);
.question { list-style-type: decimal-leading-zero; }
.answers { list-style-type: upper-alpha; }
.answers { margin-bottom: 1em; }
.correct { font-weight: bold; color: green; }
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.1.0/umd/react.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.1.0/umd/react-dom.development.js"></script>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Remember javascript arrays are zero-based indexed. Assuming "correctAnswer" corresponds to the ordered-list of "answerOptions", you can write it like this.

answers.json

{
  "answers": [
    {
      "answerOptions": ["Answer A", "Answer B", "Answer C", "Answer D"],
      "correctAnswer": 1
    },
    {
      "answerOptions": [
        "Answer A",
        "Answer B",
        "Answer C",
        "Answer D",
        "Answer E",
        "Answer F"
      ],
      "correctAnswer": 4
    }
  ]
}

import json from "./answers.json";

const { answers } = json;

export default function App() {
  return (
    <div>
      <AnswerDetails answers={answers} />
    </div>
  );
}

const AnswerDetails = (props) => {
  return (
    <ul>
      {props.answers.map(({ answerOptions, correctAnswer }, index) => (
        <AnswerComponent
          key={index}
          options={answerOptions}
          correctAnswer={correctAnswer}
        />
      ))}
    </ul>
  );
};

const AnswerComponent = (props) => {
  return (
    <ol>
      {props.options.map((option, index) => (
        <li
          key={option}
          style={{
            fontWeight: props.correctAnswer - 1 === index ? 700 : "initial"
          }}
        >
          {option}
        </li>
      ))}
    </ol>
  );
};

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda