为什么得到“期望将减速器作为一种功能”?

时间:2018-10-02 01:09:31

标签: reactjs redux react-redux

我对redux / react有所了解,但我的reducer却有问题:

const reducer = (state = 0, action) => {
  switch (action.type) {
    case "INCREMENT":
      return state++;

    default:
      return state;
  }
};

尝试将其注入我的商店:

const store = createStore(reducer);

如何避免此错误?

link to codepen

1 个答案:

答案 0 :(得分:3)

感谢沙盒!

执行function reducer(state = 0, action) { switch (action.type) { case "INCREMENT": return state++; default: return state; } } 时未定义您的“ reducer”变量。 1)在使用前定义它,或2)通过函数声明定义它:

store.subscribe(App);

这导致它被“吊起”(请参阅​​“ Function Declaration Hoisting”)。

在那之后,您会发现收到后续错误:

  

期望侦听器为函数。

App上。这是因为没有声明了类声明(请参见“ Hoisting”)。因此,您需要在store.subscribe(App);之前添加{{1}}的类声明。