То, что вы предлагаете, возможно с помощью троичного оператора .
Причина, по которой ваш пример не работает, заключается в том, что вы объявляете функцию. Как правило, свойство value
компонента React не пытается вызываться (как функция), а скорее должно быть само значением.
Это не означает, что оно не могло. Это просто против соглашения, и вы должны ожидать, что сторонние компоненты не попытаются вызвать ваше свойство value
.
Решение
<input
type="text"
name="name"
id="name"
value={symbolSearchBool ? symbolSearch : stockName.toUpperCase()}
onChange={event => { ... }}
/>
Уведомление здесь использование троичного оператора здесь, с синтаксисом:
condition ? exprIfTrue : exprIfFalse
Вы можете прочитать это следующим образом:
if (condition) {
return exprIfTrue;
} else {
return exprIfFalse;
}