не может отобразить состояние на реквизиты при использовании комбинировать - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь сопоставить свое состояние с данным компонентом с помощью приставки. У меня есть два редуктора, и поэтому я использую зернокомбайн перед передачей rootReducer в мой магазин.

const rootReducer = combineReducers({
    ctr:counter,
    res:result
});

const store = createStore(
    rootReducer,
    window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);

ReactDOM.render(<Provider store={store}><App/></Provider>, document.getElementById('root'));
registerServiceWorker();

Но когда я пытаюсь сопоставить свое состояние с реквизитом данного компонента, это состояние не определено

const mapStateToProps = state => {
    return {
        ctr: state.ctr.counter,
        storedResults: state.res.results //storedResults is undefined when I try to access it.
    }
};

Мои два редуктора выглядят следующим образом:

counter.js

import * as actionTypes from "../actions";


const initialState = {
    counter:0
};

const reducer = (state = initialState, action) => {

    switch (action.type) {
        case actionTypes.INCREMENT:
            return {
                ...state,
                counter: state.counter + 1
            };
        case actionTypes.DECREMENT:
            return {
                ...state,
                counter: state.counter - 1
            };
        case actionTypes.ADD:
            return {
                ...state,
                counter: state.counter + action.val
            };
        case actionTypes.SUBTRACT5:
            return {
                ...state,
                counter: state.counter - 5
            };
    }

    return state;
};


export default reducer;  

result.js

import * as actionTypes from "../actions";


const initialState = {
    result:[]
};

const reducer = (state = initialState, action) => {

    switch (action.type) {
        case actionTypes.STORE_RESULT:
            return {
                ...state,
                results:state.results.concat({id: new Date(), value:state.counter})
            };
        case actionTypes.DELETE_RESULT:
            // const id = 2;
            // const newArray = [...state.results];
            // newArray.splice(id,1);

            const updatedArray = state.results.filter(result => result.id !== action.resultId);

            return {
                ...state,
                results:updatedArray
            }

    }

    return state;
};


export default reducer;

Есть идеи, в чем может быть проблема?

1 Ответ

0 голосов
/ 24 августа 2018

Ваше начальное состояние в результате редуктора равно result.Просто исправьте это results.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...