2016-02-17 14 views
10

Herhangi bir özel yapılandırma ayarında geçiş yapmıyorum ve/veya Destroy ... 'u çağırmıyorum. Fakat durumumu engellemek için ... durumum temizleniyor mu? Uygulamamla ilgili bu verilere ihtiyacım olduğu için devlete ihtiyacım var. Muhtemelen senin içine redux-forms 'ın durumunu birleşiyorredux-form, bileşen bağlantısı kaldırıldıktan sonra durumumu yok ediyor, ne veriyor?

prev state: I see it in there... via redux-logger 
action: redux-form/Destroy 
next state: it's gone. 
+0

Aynı sorunu yaşıyorum. Bir giriş sayfası oluşturuyorum. Giriş formunu artık göstermediğim ve devletimin "redux-form/DESTROY" dan silinene kadar iyi çalışıyor. Bir çözüm buldunuz mu? –

+1

Benim durumumda programcı hatası gibi görünüyor. Belki de bu, aynı hatayı yapan başka birine yardımcı olur. Redüktörüm sadece 'state' yerine varsayılan durum için' initialState 'döndürüyordu. Şimdi sabit. –

cevap

27

formun devlet alt ağaç formu tasarımı ile monte edilmemiş olduğunda bozulmasıdır. Bu varsayılan ve beklenen davranıştır. v6.2.1 itibaren

itibaren orada açıkça tanır/form yapılandırma özelliği destroyOnUnmount olduğu belirli bir form üzerinde devlet temizleme davranışı devre dışı bırakır kimin bir şekle sahip olduğunda (docs here)

import { reduxForm } from 'redux-form'; 

reduxForm({ 
    form: 'example', 
    destroyOnUnmount: false 
})(...) 

yararlıdır Kullanıcının bunu yarıya kadar terk edip etmediğini, uzaklaştığını ve daha sonra geri döneceğini korumak istediğiniz durumu belirtin.

+1

şimdi v6.2.1 olarak çalışıyor gibi görünüyor: https://github.com/erikras/redux-form/releases/tag/v6.2.1 –

+0

@MattDell teşekkürler, güncellenmiş – davnicwil

+0

Benim durumumda 'destroyOnUnmount: false 'ek olarak' keepDirtyOnReinitialize: true' eklemek de gerekiyordu. – Pete

2

, ayrı anahtarın altında olmalıdır. Destroy eylemi undefined değerini döndürür, bu da tamamdır, eğer redux-form redüktörü yalnızca mağazanın bir parçasını yönetirse.

Eğer bu eğitimde özel olarak form: formReducer bölümünü adım 1. kullandığınızdan emin olun: https://redux-form.com/7.2.3/docs/gettingstarted.md/#step-1-of-4-form-reducer

+0

Evet, sanırım herşeyin kablolu olduğunu biliyorum .. sadece garip .. Her şeyi tekrar kontrol edeceğim - teşekkürler. –

+0

link mevcut değil :( –

0

Ben şahsen redux form gönderme eylemi DESTROY bir eylem sevk ve redüktör geçtikten sonra son zamanlarda

enter image description here

enter image description here

Redux Formunu kullanarak aynı sorun koştum. Brennan Cheung yorumu, redüktörümde dönmekte olduğum/değiştirdiğim devletin mağazaya geri gönderilen bilgileri kaçırdığının farkına varmamı sağladı. Bunu düzelttikten sonra, redux formu artık otomatik olarak yok etme eylemini göndermiyor. Örneğin

: Başlangıçta, bu dönüyordu:

Aslında bu

{ 
     "ee6a6c5c-1821-4280-80b7-90fa97137137": { 
     "id": "ee6a6c5c-1821-4280-80b7-90fa97137137", 
     "timestamp": 1502253747021, 
     "title": "this is a title", 
     "body": "this is another body", 
     "author": "author2", 
     "category": "category1", 
     "voteScore": 2, 
     "deleted": false, 
     "comments": [ 
      { 
      "id": "dd8684f0-8a8a-11e7-97ac-8350cad5200c", 
      "timestamp": 1503771468479, 
      "body": "comment2", 
      "author": "author2", 
      "parentId": "ee6a6c5c-1821-4280-80b7-90fa97137137", 
      "voteScore": 1, 
      "deleted": false, 
      "parentDeleted": false 
      } 
     ] 
     } 
    } 

Yani kesinlikle mağazaya geri dönüyoruz ne durumda kontrol dönmek anlamına

[ 
     { 
     "id": "dd8684f0-8a8a-11e7-97ac-8350cad5200c", 
     "timestamp": 1503771468479, 
     "body": "comment2", 
     "author": "author2", 
     "parentId": "ee6a6c5c-1821-4280-80b7-90fa97137137", 
     "voteScore": 1, 
     "deleted": false, 
     "parentDeleted": false 
     } 
    ] 

. Umarım bu yardım!

+0

Sadece redüktörünüzde birtakım hiyerarşinizi yanlışlıkla sildiğini mi söylüyorsunuz? –

+0

Sıralama ... Yapmam gerektiğinde tüm eyaleti iade etmedim. {... eyalet} kullanımı gerekiyor –