为什么会说' next'在redux中间件代码中没有定义。下一个中间件方法是否已被弃用?

时间:2016-09-04 06:14:30

标签: javascript reactjs redux react-redux

我收到此错误:

index.js?dadc:6Uncaught TypeError: next is not a function

ReactJS中间件使用的下一个方法是否已被弃用,或者我是否错误地使用了它?

import { applyMiddleware, combineReducers , createStore } from 'redux';

const logger =(store) => (next) => (action) => {

    console.log('middle-ware called');
    next(action);

}

const reducer=(state ,action)=>{
    if(action.type=='INC'){
        console.log('a-----------------',action);
        return state+action.payload;
    }
    else
        return state; };

const store=createStore(reducer ,1 ,applyMiddleware(logger()));



store.subscribe(()=>{
    console.log('store changed',store.getState()) });

store.dispatch({type :'INC' ,payload : 10}); store.dispatch({type :'INC' ,payload : 10});

1 个答案:

答案 0 :(得分:4)

这是行不通的,因为你传递applyMiddleware的{​​{1}}没有参数的logger()

要解决此问题,您必须将logger而不是logger()传递给applyMiddleware()

您可以阅读有关自定义中间件here

的更多信息