Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript can';使用组合减速器时,将状态映射到道具_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript can';使用组合减速器时,将状态映射到道具

Javascript can';使用组合减速器时,将状态映射到道具,javascript,reactjs,redux,Javascript,Reactjs,Redux,我正试图用redux将我的状态映射到给定的组件。我有两个reducer,因此在将rootReducer传递到我的存储之前使用combinereducer const rootReducer = combineReducers({ ctr:counter, res:result }); const store = createStore( rootReducer, window.__REDUX_DEVTOOLS_EXTENSION__ && win

我正试图用redux将我的状态映射到给定的组件。我有两个reducer,因此在将rootReducer传递到我的存储之前使用combinereducer

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();
我的两个减速器如下所示:

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;  
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;
result.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;  
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;

知道问题是什么吗?

您在result reducer中的初始状态是
result
。只需将其更正为
结果

当然可以。如果需要消除这些问题,请使用Flow或ESLint。