Darbas su forma

event.preventDefault() - stops default drowser behavior - reload page

<form
  onSubmit={event => {
    event.preventDefault() // prevent the default browser behavior
    const formData = new FormData(event.currentTarget)
    console.log(Object.fromEntries(formData))
    // do something with the form data
  }}
  {/* form fields go here */}
</form>
<label>
  Name
  <input name="name" type="text" />
</label>
<label htmlFor="nameInput">Name</label>
<input id="nameInput" name="name" type="text" />

Metodai

Formoje yra GET, POST ir DIALOG metodai .

GET

Get metodas - visus perduodamus duomenis sudeta query. Tinka visokiom paieškoms, kur nera kritiniu duomenų (slaptažodžiū ar pnš)

Duomenu gavimas:

new URL(request.url).searchParams

POST

Post metodas - perduoda bodyje

Duomenų gavimas:

await request.formData()

Enc type

Tam, kad perduoti prikabintą faila, reikia pridėti parametrą encType=multipart/form-data

new FormData api gali tureti savyje kelis parametrus tuo paciu pavadinimu

Action

Galime action perduoti callback, kuris kaip parametra gauna formos duomenis FormData objekte

function App() {

  function logFormData(formData: FormData) {
    console.log(Object. fromEntries (formData))
  }

return (
<form action={logFormData}>
  <div>
    <label htmlFor="username Input">Username:</label>
    <input id="usernameInput" name="username" /> </div>