2016-10-08 1 views
0

Ich arbeite an meiner ersten React-Redux-App. Aufruf an mapStateToProps scheint falschen Statusobjekt zu übergeben

Dies ist der Code meines Minderer (I nur eine haben):

const CalculationsReducers = (state = {}, action) => { 
    switch (action.type) { 
     case CalculationsActions.LOAD_CALCULATIONS: 
      return Object.assign({}, state, { 
       calculations: [{ 
        id: 'abc', 
        name: 'test', 
        date: 'test', 
        status: 'in progress' 
       }] 
      }); 
     default: 
      return state; 
    } 
}; 

Dies ist der Code meiner 'mapStateToProps' Funktion, die ich mit connect verwenden()

const mapStateToProps = (s) => { 
    return { 
     calculations: s.calculations ||[] 
    }; 
}; 

Als ich Senden Sie eine Aktion mit dem Typ LOAD_CALCULATIONS, ich kann einen Protokoll-Trace sehen (mit react-logger), aber das Zustandsobjekt scheint mir sehr seltsam. Kann mir jemand meinen Fehler zeigen?

log trace using react-logger

Antwort

0

Der Workflow sieht gut für mich. Das Statusobjekt sieht ebenfalls gut aus, aber Sie sollten den Alias ​​beim Importieren des Reducers ändern, um Ihren Store zu konfigurieren, um ihn intuitiver zu gestalten.

In Ihrer configure Speicherdatei:

import calculations from 'reducers/CalculationReducer'; 

Beachten Sie, dass es Sie CalculationReducer als Standard für den Export benötigt. Dann sehen Sie calculations anstelle von CalculationReducer in Ihrem Statusobjekt.

Und ich bemerkte, dass Sie eine payload zusammen mit Ihrer Aktion haben, aber nie in Reducer behandelt wurde. Wenn Sie es in Zustandsobjekt benötigen, dann behandeln Sie es in Reduzierer mit action.payload.

Verwandte Themen