#javascript #reactjs #react-redux
#javascript #reactjs #реагировать-redux
Вопрос:
Я хочу достичь этой функциональности с помощью тернарного оператора. Здесь iconElement — это переменная javascript, содержащая JSX. Я получаю ошибку, подобную этой (скриншот прилагается). Как этого добиться?
<div className = 'InputFieldGroup'>
{
inputField ? inputField :
{iconElem}
<input
{...otherProps}
className = 'InputField'
value = {value}
onChange = {clicked}
autoComplete = 'off' />
}
</div>
Ответ №1:
Ранее при использовании троичного оператора возникала синтаксическая ошибка:
<div className="InputFieldGroup">
{inputField ? (
inputField
) : (
<>
{iconElem}
<input
{...otherProps}
className="InputField"
value={value}
onChange={clicked}
autoComplete="off"
/>
</>
)}
</div>
Комментарии:
1. Я хочу выполнить как переменную iconElem, так и поле ввода только тогда, когда троичное условие равно false
2. Вы можете вернуть только один элемент React, поэтому вам следует добавить фрагмент, см. Обновленный ответ
Ответ №2:
Если поле ввода должно быть видимым в обоих случаях, я бы сделал что-то подобное вместо этого, чтобы избежать необходимости дублировать компоненты:
<div className="InputFieldGroup">
{!inputField amp;amp; iconElem}
<input
{...otherProps}
className="InputField"
value={value}
onChange={clicked}
autoComplete="off"
/>
)}
</div>