2016-06-24 15 views
6

wierzę Jestem kopiowanie Todo samouczek dość dużo linii do linii, otrzymuję ten błąd:Dlaczego mój reduktor Redux uważa, że ​​mój stan jest niezdefiniowany?

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.

I tu jest mój reduktor addReport:

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

dodałem oświadczenie rejestrowania i może zweryfikować, czy zwraca pustą tablicę. Nawet ustawienie stanu na coś podobnego 1 da takie same wyniki. czego mi brakuje?

Odpowiedz

12

Brakuje default przypadku przełącznika.

default: { 
    return { 
    ...state 
    } 
} 

Redux nie będzie grał jak miły dzieciak, jeśli zapomnisz tego zrobić!

Lub alternatywnie, można wyraźnie powrócić na koniec stan początkowy: If the state passed to the reducer is undefined, you must explicitly return the initial state.

+0

Co ciekawe ta odpowiedź pomogła mi bo zachodziło obiekt ale wracając po prostu „państwo” w moim domyślnie. Nie wiedziałem, że musisz wysłać stan domyślny w tym samym formacie co stan początkowy. Nie wygląda to tak, jeśli stan początkowy jest tablicą lub ciągiem itp. –

Powiązane problemy