Я работаю над тестом, который, в зависимости от данного ответа, должен вернуть строку (вверх, вниз или средний), которую я добавляю после этого в className в моем компоненте, чтобы показать правильный значок.
Может кто-нибудь сказать мне, что я делаю не так в этой логике? К этому моменту оба аргумента (answer и id) становятся нормальными, и я могу их прочитать. Но операторы if просто игнорируют их и переходят непосредственно к оператору else (который всегда дает «down»).
Это логика, которую я написал:
export const checkAnswer = (answer, id) => {
if ((answer === 'Nein') && (id === '0' || id === '3' || id === '5')) {
return 'up';
} else if ((answer === 'Ja') && (id === '1' || id === '2' || id === '4' || id === '6')){
return 'up';
} else if (answer === 'Weiß nicht') {
return 'medium';
} else {
return 'down';
}
Я ценю любую помощь.
Спасибо за вашу помощь, ребята. Кроме того, вот код, в котором я передаю аргументы:
questions.map(question => {
if (checkAnswer(question.answer, question.id) === 'up') {
correctAnswers += 1;
debugger
}
if (
(question.category === 'Effektivkosten' || 'Rentenfaktor') &&
question.answer === 'Nein'
) {
correctAnswers += 2;
}
if (question.winner && question.answer === 'Ja') {
winnerAnswer = true;
}
});
А вот как все вопросы структурированы:
{
id: 0,
category: 'Effektivkosten',
text: 'Sind die Effektivkosten höher als 1,5%?',
shortText: 'Über 1,5% p.A.',
answer: '',
options: [
{
id: 1,
name: 'Ja'
},
{
id: 2,
name: 'Nein'
},
{
id: 3,
name: 'Weiß nicht'
}
]
},
А вот таблица, где я читаю «строку»"и добавьте его в className:
<table>
<tbody>
{questions.map((question, index) => (
<tr key={question.id}>
<td className="name">
<strong>{question.category}:</strong>
</td>
<td className="shortName">{question.shortText}</td>
<td>
<i
className={`icon-thumb icon-thumb__${checkAnswer(
question.answer,
question.id
)}`}
/>
</td>
</tr>
))}
</tbody>
</table>