错误:Reducer“计数器”在初始化期间返回未定义。如果传递给reducer的状态是未定义的

2 redux react-redux

我正在尝试对 reduxer(学习)进行基本测试,看起来基本没有问题,但我收到此错误“\xc3\x97\n错误:Reducer“计数器”在初始化期间返回未定义。如果状态传递给“reducer 未定义,必须显式返回初始状态。初始状态不一定是未定义的。如果你不想给这个reducer 设置值,可以使用 null 代替 undefined。”

\n

我相信这个反应是非常愚蠢的希望得到帮助。

\n

Reduxer 文件。\ncounter.js

\n

\r\n
\r\n
const counterReducer = (state = 0, action) => {\n  switch (action.type) {\n    case "INCREMENT":\n      return state + 1;\n    case "DECREMENT":\n      return state - 1;\n  }\n};\n\nexport default counterReducer;
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

isLogged.js

\n

\r\n
\r\n
const loggedReducer = (state = false, action) => {\n  switch (action.type) {\n    case "SING_IN":\n      return !state;\n    default:\n      return state;\n  }\n};\nexport default loggedReducer;
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n\nindex.js

\n

\r\n
\r\n
import counterReducer from "./counter";\nimport loggedReducer from "./isLogged";\nimport { combineReducers } from "redux";\n\nconst allReducers = combineReducers({\n  counter: counterReducer,\n  isLogged: loggedReducer,\n});\n\nexport default allReducers;
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

src 文件夹>index.js。

\n

\r\n
\r\n
import React from "react";\nimport ReactDOM from "react-dom";\nimport "./index.css";\nimport App from "./App";\nimport * as serviceWorker from "./serviceWorker";\nimport { createStore } from "redux";\nimport allReducer from "./reducers";\n\nconst store = createStore(\n  allReducer,\n  window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()\n);\n\nReactDOM.render(\n  <React.StrictMode>\n    <App />\n  </React.StrictMode>,\n  document.getElementById("root")\n);\n\n\nserviceWorker.unregister();
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

Yur*_*nko 7

你应该默认从reducer返回

const counterReducer = (state = 0, action) => {
  switch (action.type) {
    case "INCREMENT":
      return state + 1;
    case "DECREMENT":
      return state - 1;
    default:
      return state;
  }
};
Run Code Online (Sandbox Code Playgroud)

每个减速器都会收到发送的每个操作。如果您不知道操作类型,则应该原封不动地返回状态。