Из того, что я вижу, вы пытаетесь неправильно использовать условные операторы. Из документов здесь .
expr1 && expr2
означает, что если expr1
можно преобразовать в true
, возвращается expr2
; else возвращает expr1
.
т.е. ваше первое выражение arr.length > 0
возвращает истину, поэтому ваше второе выражение оценивается <h1>...</h1>
, которое также оценивается как истина. Следовательно, последнее выражение оценивается и возвращается.
Итак, чтобы отобразить оба компонента, вы можете использовать фрагменты или, как предлагали другие, использовать несколько условных выражений или обернуть в div
.
{
arr.length > 0 &&
<>
<h1>Additional Text</h1>
{
arr.map((item) =>
<Badge key={item.toString()} pill variant='primary'>
{item}
</Badge>
}
</>
}
Здесь <>
и </>
являются сокращениями для <React.Fragment>
и </React.Fragment>
и дадут вам ту же древовидную структуру, которую вы, возможно, хотели бы.