Извините, если я использую неправильный термин, я не знаю, какая терминология правильная. Пожалуйста, поправьте меня, если можете.
Допустим, у меня есть форма, которую я хочу иметь в случае, если ее настроить.
<Form.Select
name = "select"
value= {isTrue?value1:value2}
multiple = {enableMultiple}>
как видите, value
можно использовать короткую форму if-case для установки значения
Но для multiple
этот пример потерпит неудачу, потому что мне нужно либо иметь, либо не иметь параметр, чтобы включить/отключить его, а не устанавливать его true/false
Итак, существует ли краткая форма для включения/выключения переменной multiple
в Form.Select
? Я пытаюсь сделать следующее
{enableMutiple ? <Form.Select value=... mutiple ...> : <Form.Select value=...>}
То, что вы делаете, приемлемо. Хотя реакция позволяет множественному быть undefined
или ложным. Здесь ``` const a = true; return ( <select Multiple = {a}> <option></option> <option></option> <option></option> </select> ); ```
Вот на моей машине работает XD
const a = true;
return (
<select multiple = {a}>
<option></option>
<option></option>
<option></option>
</select>
);
В документации по реагированию говорится, что допустимо передавать логическое значение multiple
или не передавать его вообще.
interface SelectHTMLAttributes<T> extends HTMLAttributes<T> {
autoComplete?: string | undefined;
disabled?: boolean | undefined;
form?: string | undefined;
multiple?: boolean | undefined;
name?: string | undefined;
required?: boolean | undefined;
size?: number | undefined;
value?: string | readonly string[] | number | undefined;
onChange?: ChangeEventHandler<T> | undefined;
}
пожалуйста, публикуйте код/интерфейсы/и т. д. в виде форматированного текста, а не изображений 👍🏻
использование синтаксиса EnableMultiple && true для условного отрисовки атрибута Multiple в элементе формы — это краткий и эффективный способ обработки таких сценариев. Это делает ваш код чище и проще для понимания, улучшая читаемость и удобство сопровождения. Этот подход является обычной практикой в разработке на JavaScript и React и позволяет переключать атрибуты в зависимости от конкретных условий без ненужного повторения кода. В целом, это улучшает процесс разработки и помогает писать более оптимизированный и организованный код. примечание: Если ваши ставки высоки, лучше использовать случай переключения
<Form.Select
name = "select"
value = {isTrue ? value1 : value2}
multiple = {enableMultiple && true}
>
{/* Your select options here */}
</Form.Select>
Подозрительно ChatGPT-y.
«Если ваши ставки высоки, лучше использовать случай переключения». Что это должно означать?
И вы написали много текста, не объясняя, почему это на самом деле лучше или даже что вообще должно делать добавление && true
.
Если вы действительно хотите вообще опустить это свойство, вы можете попытаться распространить на объект свойства, которые могут либо содержать свойство multiple
, либо нет.
<Form.Select
name = "select"
value= {isTrue ? value1 : value2}
{...(enableMultiple ? {multiple: true} : {})}
>
Но если ваша первоначальная попытка действительно не работает, я бы сообщил об ошибке в этой библиотеке.
К вашему сведению: короткий if/else, о котором вы говорите, называется тернарным оператором