Video yükleniyor...

Video Yüklenemedi

Ana Sayfaya Dön

React Server Actions have helped me: ◆ Write less code ◆ Build better user experiences How can we create products that are resilient to slower internet connections and instantly provide feedback on user input? ↓

77,472 görüntüleme • 2 yıl önce •via X (Twitter)

11 Yorum

Surjith S M ✪ profil fotoğrafı
Surjith S M ✪2 yıl önce

What if the user closed the tab thinking they made the vote but in reality the request is still pending?

Lee Robinson profil fotoğrafı
Lee Robinson2 yıl önce

This seems to work: useEffect(() => { function handler(e) { if (!state.pending) return; e.preventDefault(); } window.addEventListener('beforeunload', handler); return () => { window.removeEventListener('beforeunload', handler); }; }, [state.pending]); Where `state.pending` comes from `useOptimistic` state.

Wonderchat profil fotoğrafı
Wonderchat2 yıl önce

Automate up to 70% of your customer support today. Save time and help your users find answers quickly. Try now at

⟁ndrew V profil fotoğrafı
⟁ndrew V2 yıl önce

curious about error handling, if the optimistic+server actions, end up conflicting with db data. I get it that the likelihood is .0001 low of the conflict in this example, but say in a scenario where 100 users are up and down voting... what could my risk of mutant mutations be?

Lee Robinson profil fotoğrafı
Lee Robinson2 yıl önce

Since I'm using Redis here, you could use transactions to make sure every upvote was counted when 100 folks modify the same item. There wouldn't be conflicts on inserts since each has a new UUID. Does that answer your question?

Jonny Summers-Muir profil fotoğrafı
Jonny Summers-Muir2 yıl önce

Love this @leeerob - I think this was where I tripped up a bit in the NextJS docs. There isn’t a huge amount of information on using forms in a client context (useFormState etc) vs a RSC context. It’s like the ServerActions guide and forms in nextjs guide need squashing together.

Lee Robinson profil fotoğrafı
Lee Robinson2 yıl önce

Good news, we recently updated these docs and combined them!

Jay profil fotoğrafı
Jay2 yıl önce

What are you using to generate those subtitles and the animation?

Faizan Arif profil fotoğrafı
Faizan Arif2 yıl önce

What about error handling? Let’s say some API failed in server actions, what is the optimistic and standard way to handle all those errors on client side?

Lee Robinson profil fotoğrafı
Lee Robinson2 yıl önce

I cover error handling a bit here with `useFormStatus`

hardcoded profil fotoğrafı
hardcoded2 yıl önce

This is great!

Benzer Videolar