Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Kohteen Päivittäminen Tietokannassa | Edistyneet Next.js-Ominaisuudet ja Optimoinnit
Next.js 14 -osaaminen Modernien Web-sovellusten Rakentamiseen

bookKohteen Päivittäminen Tietokannassa

Laskun päivittäminen – Yksinkertaiset vaiheet

Laskun päivittäminen muistuttaa hyvin paljon uuden laskun luomista. Tässä vaiheet:

  1. Luo dynaaminen reitti: Luo uusi dynaaminen reittisegmentti, joka sisältää laskun id:n. Näin sovellukselle kerrotaan, minkä laskun kanssa työskennellään;
  2. Lue laskun id: Hae laskun id sivun parametreista;
  3. Hae tietty lasku: Nouda valitun laskun tiedot tietokannasta;
  4. Päivitä tietokanta: Tee tarvittavat muutokset ja päivitä laskun tiedot tietokantaan.

Takaisin projektiin

1. Luo dynaaminen reitti

Muuttuvan datan perusteella voidaan luoda dynaamisia reittisegmenttejä, kun halutaan joustavia reittejä. Kääri kansion nimi hakasulkeisiin luodaksesi dynaamisen reitin. Esimerkiksi käytä [id], [post] tai [slug], kun halutaan muuttuvia segmenttejä reittiin.

  1. Siirry /invoices-kansioon ja luo uusi dynaaminen reitti nimeltä [id];
  2. Lisää uusi reitti nimeltä 'edit' /invoices/[id]-kansion sisälle. Lisää myös page.tsx.

Tulos:

Tarkastellaan Table-komponenttia tiedostossa app/ui/invoices/table.tsx. Voimme havaita, että UpdateInvoice vastaanottaa laskun id:n.

Siirry <UpdateInvoice />-komponenttiin (app/ui/invoices/buttons.tsx). Näemme, että käytämme id:tä osana href-arvoa.

2. Lue laskun id

Lisää seuraava koodi tiedostoon app/dashboard/invoices/[id]/edit/page.tsx.

3. Hae tietty lasku

Seuraavaksi tuodaan uudet funktiot nimeltä fetchInvoiceById ja fetchSellers.

  • fetchInvoiceById palauttaa tietyn laskun tiedot;
  • fetchSellers palauttaa myyjät lomakkeen pudotusvalikkoa varten, jossa näytetään kaikki myyjät.

Voimme hakea sekä laskun että myyjät tehokkaasti samanaikaisesti käyttämällä Promise.all -metodia.

Testataanpa tätä! Voimme avata laskusivun ja klikata muokkauspainiketta (kynän symboli). Tämän pitäisi ohjata meidät lomakkeeseen, jossa laskun tiedot ovat valmiiksi täytettyinä.

4. Päivitä tietokanta

id tulee lähettää Server Actionille, jotta oikea tietue päivittyy tietokantaan. Näin voit tehdä sen tehokkaasti:

Käytä JS:n bind-metodia välittääksesi id Server Actionille. Tämä varmistaa, että kaikki Server Actionille lähetettävät arvot koodataan asianmukaisesti.

Vältä id:n välittämistä suoraan lomakkeen action-parametrina näin:

// This won't work 
<form action={updateInvoice(id)}> 

Seuraavaksi jatketaan toiminnoilla ja luodaan toiminto laskun päivittämistä varten.

Kokeile itse! Muokkaa laskua, lähetä lomake ja sinut ohjataan laskut-sivulle, jossa päivitetty lasku näkyy.

Käytännössä

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 6. Luku 6

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain how the dynamic route works in this context?

What should I do if the invoice form doesn't prefill with data?

How do I handle errors when updating an invoice?

Awesome!

Completion rate improved to 2.08

bookKohteen Päivittäminen Tietokannassa

Pyyhkäise näyttääksesi valikon

Laskun päivittäminen – Yksinkertaiset vaiheet

Laskun päivittäminen muistuttaa hyvin paljon uuden laskun luomista. Tässä vaiheet:

  1. Luo dynaaminen reitti: Luo uusi dynaaminen reittisegmentti, joka sisältää laskun id:n. Näin sovellukselle kerrotaan, minkä laskun kanssa työskennellään;
  2. Lue laskun id: Hae laskun id sivun parametreista;
  3. Hae tietty lasku: Nouda valitun laskun tiedot tietokannasta;
  4. Päivitä tietokanta: Tee tarvittavat muutokset ja päivitä laskun tiedot tietokantaan.

Takaisin projektiin

1. Luo dynaaminen reitti

Muuttuvan datan perusteella voidaan luoda dynaamisia reittisegmenttejä, kun halutaan joustavia reittejä. Kääri kansion nimi hakasulkeisiin luodaksesi dynaamisen reitin. Esimerkiksi käytä [id], [post] tai [slug], kun halutaan muuttuvia segmenttejä reittiin.

  1. Siirry /invoices-kansioon ja luo uusi dynaaminen reitti nimeltä [id];
  2. Lisää uusi reitti nimeltä 'edit' /invoices/[id]-kansion sisälle. Lisää myös page.tsx.

Tulos:

Tarkastellaan Table-komponenttia tiedostossa app/ui/invoices/table.tsx. Voimme havaita, että UpdateInvoice vastaanottaa laskun id:n.

Siirry <UpdateInvoice />-komponenttiin (app/ui/invoices/buttons.tsx). Näemme, että käytämme id:tä osana href-arvoa.

2. Lue laskun id

Lisää seuraava koodi tiedostoon app/dashboard/invoices/[id]/edit/page.tsx.

3. Hae tietty lasku

Seuraavaksi tuodaan uudet funktiot nimeltä fetchInvoiceById ja fetchSellers.

  • fetchInvoiceById palauttaa tietyn laskun tiedot;
  • fetchSellers palauttaa myyjät lomakkeen pudotusvalikkoa varten, jossa näytetään kaikki myyjät.

Voimme hakea sekä laskun että myyjät tehokkaasti samanaikaisesti käyttämällä Promise.all -metodia.

Testataanpa tätä! Voimme avata laskusivun ja klikata muokkauspainiketta (kynän symboli). Tämän pitäisi ohjata meidät lomakkeeseen, jossa laskun tiedot ovat valmiiksi täytettyinä.

4. Päivitä tietokanta

id tulee lähettää Server Actionille, jotta oikea tietue päivittyy tietokantaan. Näin voit tehdä sen tehokkaasti:

Käytä JS:n bind-metodia välittääksesi id Server Actionille. Tämä varmistaa, että kaikki Server Actionille lähetettävät arvot koodataan asianmukaisesti.

Vältä id:n välittämistä suoraan lomakkeen action-parametrina näin:

// This won't work 
<form action={updateInvoice(id)}> 

Seuraavaksi jatketaan toiminnoilla ja luodaan toiminto laskun päivittämistä varten.

Kokeile itse! Muokkaa laskua, lähetä lomake ja sinut ohjataan laskut-sivulle, jossa päivitetty lasku näkyy.

Käytännössä

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 6. Luku 6
some-alt