Quero mudar o caminho das ações dinamicamente com use:enhance.
No entanto, meu código não está funcionando como eu esperava. Ele sempre redireciona para "?/error". Não "?/a"
<script>
import { enhance } from "$app/forms";
/** @type {import("./$types").SubmitFunction} */
const handleSubmit = ({formData, action}) => {
switch(formData.get("type")) {
case "a":
action = new URL("?/a", action);
console.log(action) // action changed.
break;
// And So On...
}
}
</script>
<form action="?/error" use:enhance={handleSubmit}>
<button name="type" value="a">Submit</button>
</form>
Na verdade, você teria que modificar o objeto de evento de origem; modificar um valor primitivo desestruturado não o afeta. Mas o SvelteKit também não se importa com isso.
Você deve apenas alterá-lo no modelo, os botões podem fazer isso nativamente. Por exemplo
(Você também precisa POSTAR, caso esteja faltando)