Перенаправить пользователя после отправки формы - PullRequest
1 голос
/ 23 октября 2019

У меня есть <input type="text" /> в качестве строки поиска внутри <form>.

Поскольку это панель поиска, пользователь должен быть перенаправлен на маршрут, аналогичный: /search?q=thingIWantToSearch, когда форма отправляется.

В настоящее время я делаю с location.href, но я не думаю, что это хороший способ сделать это (или это?)

Вот мой код:

<script>
    let inputValue = '';

    const handleSubmit = () => {
        // there should be some parsing before putting it in the url, but it's not the subject
        location.href = `/search?q=${inputValue}`;
    }
</script>

<form on:submit|preventDefault={handleSubmit}>
    <input type="text" bind:value={inputValue} />
    <button type="submit">submit</button>
</form>

Так как мне правильно перенаправить пользователя при отправке формы?

1 Ответ

3 голосов
/ 24 октября 2019

Ознакомьтесь с функцией перехода Sappers . Это может служить вашим целям.

Вот как вы можете использовать свой код с ним.

<script>
  import { goto } from '@sapper/app';

  let inputValue = '';

  const handleSubmit = () => {
    // there should be some parsing before putting it in the url, but it's not the subject
    goto(`/search?q=${inputValue}`);
  };
</script>

<form on:submit|preventDefault="{handleSubmit}">
  <input type="text" bind:value="{inputValue}" />
  <button type="submit">submit</button>
</form>
...