2016-01-27 19 views
6

Birçok Redux örneğinde, SOME_ASYNC_ACTION_ERROR veya SOME_ASYNC_PENDING, global durumu işlemek için gönderilen eylemlerdir. Bir bileşenin başlangıçta global bir hata/yükleme/bekleyen durumla işlenmesinin mantıklı olacağı bir senaryo düşünemiyorum. Bir bileşen imha edildiğinde ve yeniden takıldığında, bu uyumsuzluğun "temizlenmesi" gerekir; bu, bileşenin yerel durumunun yerel yönetiminin daha iyi bir seçim olduğunu gösterir.Redux uygulamasında yerel duruma benzer uygulama

Bu göz önüne alındığında ne Redux devletleri/yükleme/hata ile uğraşan bekleyen en iyi uygulama şudur:

  • lokal ama hala bir başlangıç ​​durumuna bir bileşen varsayılan yüklemesi için küresel bir uygulama durumuna abone Should/hatalar ?
  • VEYA Bir bileşen bırakıldıktan sonra uygulama hatası/yükleme durumu sıfırlanmalı mı?
  • VEYA Bu geçici durumlar yerel olarak yönetilmeli mi? Benim anlayış

cevap

4

, Redux en iyi uygulama küresel deposunda daima mağaza uygulaması için, ama sonra sahip bireysel bileşenler connect(mapStateToProps)(Component) kullanarak, bu mağazadan sadece ilgili bilgilere abone olun. Bu yüzden daha ziyade küresel bir uygulama loading özelliği olmasındansa bireysel bileşenler

daha DÜZENLEME için http://rackt.org/redux/docs/basics/UsageWithReact.html Bkz users.loading olarak, ilgili bayrak abone olur: daha da soruya cevap vermek için her Eylem kendisi sonra temizlemek gerekir Başka bir eylemi göndererek. Bu yüzden, bir yükleme bayrağı ekleyen ve bir hata durumunu sıfırlayankodunuz olabilir, bunu takiben yükleme bayrağını kaldıran RECEIVE_USER veya yükleme bayrağını kaldıran FAILED_TO_RECIEVE_USER, ancak hata durumu ekler. Bu desen burada oldukça ayrıntılı olarak açıklanmıştır: https://github.com/agraboso/redux-api-middleware#redux-standard-api-calling-actions

+1

Doğru, bu, 'connect' öğesinin ilgili uygulama durumunu bileşenle eşleştirmek için kullanıldığını varsayar - bunu belirtmeliydim. Sorun hala hata/beklemede olan durumlar olarak kalıyor. – Whoa

+1

Yukarıdaki cevabı verdiğimden, bu konuyu biraz daha ileriye taşımak için düzenledim, – Aaron

+3

ile başlamak için bunu belirtmeliydim Ve eğer bir bileşen takılı değilken "hata" durumunun hayatta kalması gerektiğini düşünmüyorsanız, o zaman bakmanız gerekir. Redux deposunun, bileşenin bağlantısız olmasına neden olan Reaktinin yeniden oluşturulmasına neden olan güncellemeye neden olan eylemde. Bileşenlerin hiçbir sebepten ötürü gitmiyorlar ve ayrılmıyorlar. Bunu yapıyorlar çünkü Redux mağazası bir hareket nedeniyle değiştirildi. Muhtemelen, başka herhangi bir şeye ek olarak hata durumunu da temizleyen bu eylem için bir redüktöre ihtiyacınız vardır. – Brandon

İlgili konular