2017-11-17 2 views
0

Ich habe eine connect() ed Container-Komponente, wo ich versuche, eine Liste von Büchern zu meinem Redux-Shop zu schreiben. Der Aktionsersteller ist als Requisite verfügbar und der Status wird Requisiten zugeordnet, die Buchliste wird jedoch nie in den Reduxspeicher aufgenommen. readingList ist immer noch null statt bookArray (das übergebene Argument des Aktionserstellers). Kann hier jemand das Problem erkennen? Enthaltene relevante Schnipsel hier:Reducer nicht in Redux speichern

import { setReadingList } from '../actions/index'; 

componentWillMount() { 
    this.props.setReadingList(bookArray); 
} 

function mapStateToProps(state) { 
    return { 
    readingList: state.readingList 
    } 
    } 

function mapDispatchToProps(dispatch) { 
    return bindActionCreators({ setReadingList : setReadingList }, dispatch); 
    } 

export default connect(mapStateToProps, mapDispatchToProps)(ReadingList); 

/*-----------*/ 

./actions/index.js 

export function setReadingList(readingList) { 
    return { 
     type : "SET_READINGLIST", 
     payload : readingList 
    }; 
    } 

/*-----------*/ 

./reducers/index.js 

import { combineReducers } from 'redux'; 
import readingList from './reading_list'; 

export const rootReducer = combineReducers({ 
    readingList 
}); 
export default rootReducer; 

/*-----------*/ 

./reducers/reading_list.js 

export default function(state = null, action) { 
    switch (action.type) { 
    case "SET_READINGLIST": 
     return action.payload; 
    default: 
     return state; 
    } 
} 

Danke!

+0

Kombinieren Sie diesen Reduzierer in Ihren Wurzelreduzierer? –

Antwort

0

Versuchen Sie, SetReadingList in ComponentDidMount anstelle von ComponentWillMount aufzurufen. Würde auch sicherstellen, dass bookArray im Umfang ist.