В JSX {}
не выводит строки, как это имеет место во многих языках шаблонов, вам нужно рассматривать это как присваивание, где левая рука - это свойство, например, multiple=
, а правая рука - это выражение JavaScript, которое возвращает назначаемое значение, например, { setting.multiple }
- оценивается и присваивается свойству multiple
.
Теперь, чтобы установить значение в зависимости от setting
, просто следуйте той же логике:
<select value={ setting.multiple ? [] : (setting.default || "") } />
РЕДАКТИРОВАТЬ: объяснить, почему ошибка говорит expected "..."
. Если {}
не попадает в правую часть назначения, ожидается, что вы хотите распространить несколько свойств, например
const props = { value: "foo", name: "myInput" }; <select {...props } />
.