У меня есть компонент FormRow, который выглядит примерно так (информация о стиле и макете, поэтому мне нужен компонент, здесь для краткости удалена):
<script>
export let label;
export let type;
export let value;
</script>
<input type={type} bind:value={value}>
и используется он так:
<FormRow title="Email: " type="email" value={email}/>
<FormRow title="Username:" type="text" value={username}/>
<FormRow title="Password: " type="password" value={password}/>
<FormRow title="Confirm Password: " type="password" value={confirmPassword}/>
с намерением получить доступ к переменным электронной почты, имени пользователя, пароля и confirmPassword в JS при отправке формы и, возможно, использовать реактивность для добавления проверки ввода (в дополнение к проверке на стороне сервера, конечно). Но когда я пытаюсь скомпилировать это, я получаю такую ошибку:
ERROR in ./src/pages/_components/FormRow.svelte
Module build failed (from ./node_modules/svelte-loader/index.js):
Error: ValidationError: 'type' attribute cannot be dynamic if input uses two-way binding (31:22)
29: {title}
30: </label>
31: <input id="input" type={type} bind:value={value}>
Я думаю, что понимаю, в чем проблема (тип и значение не могут быть одновременно установлены через систему реактивности), но я не вижу, как выполнить то, что я хочу (многоразовый и универсальный компонент FormRow). Я подумал, что может быть какой-то другой способ установить атрибут типа для каждого экземпляра FormRow, поскольку мне не нужно, чтобы он изменялся во время выполнения для какого-либо конкретного экземпляра, но я не смог найти какой-либо метод, чтобы он варьировался для каждого экземпляра. компонентная база, подобная этой в документации Svelte.