2016-06-24 31 views
6

ben Todo hattı için oldukça fazla çizgi öğretici taklit ediyorum inanıyoruz, bu hatayı alıyorum: BuradaRedux redüktörüm neden durumumun tanımsız olduğunu düşünüyor?

Error: Reducer "addReport" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined.

Ve addReport redüktör: Ben günlüğü deyimi eklendi

const addReport = (state = [], action) => 
{ 
    console.log(state) 
    switch (action.type) { 
    case ADD_NEW_REPORT: 
    return [...state, 
     addReports(undefined, action) 
    ] 
    } 
} 

ve boş bir dizi döndürdüğünü doğrulayabilir. Durumu 1 gibi bir şey haline getirmek bile aynı sonuçları üretecektir. Neyi kaçırıyorum?

cevap

12

Anahtar kutusunun default eksik.

default: { 
    return { 
    ...state 
    } 
} 

bunu unutursanız Redux güzel çocuk gibi birlikte oynamak olmaz! Ben bir nesneyi ayarlayarak ama benim varsayılan basitçe "devlet" dönüyordu çünkü If the state passed to the reducer is undefined, you must explicitly return the initial state.

+0

İlginçtir Bu cevap bana yardımcı:

Veya alternatif olarak, açıkça sonunda başlangıç ​​durumunu dönebilirsiniz. İlk durumla aynı biçimde varsayılan bir durum göndermeniz gerektiğinin farkında değildim. İlk durum bir dizi veya dize vb. Ise bu durum görünmez. –

İlgili konular