【问题标题】:Redux: Cannot read property 'getState' of undefinedRedux:无法读取未定义的属性“getState”
【发布时间】:2021-05-23 17:41:40
【问题描述】:

目前我正在学习 Redux 以使用 React 创建一个简单的待办事项应用程序。我就是这样做的

这是我的减速器和存储:

/redux/todo.js

const initialState = {
  items: []
};

const ADD_TODO = "ADD_TODO";

export const addTodo = (text) => ({
  type: ADD_TODO,
  payload: text
});

const reducer = (state = initialState, action) => {
  switch (action.type) {
    case "ADD_TODO":
      return {
        ...state,
        items: [...state.items, action.payload]
      };
    default:
      return state;
  }
};

export default reducer;

/redux/store.js

import { createStore, combineReducers } from "redux";

import todoReducer from "./todo";

const reducer = combineReducers({
  todo: todoReducer
});

export default createStore(reducer);

这是我用 redux 映射的组件:

/components/TodoApp.js

import React, { useState } from "react";

export default function TodoApp({ todos, addTodo }) {
  const [text, setText] = useState("");

  return (
    <div>
      <input
        type="text"
        value={text}
        onChange={(e) => setText(e.target.value)}
      />
      <button
        onClick={() => {
          addTodo(text);
        }}
      >
        Add
      </button>
      <ul>
        {todos.map((todo) => (
          <li>{todo}</li>
        ))}
      </ul>
    </div>
  );
}

这就是我将商店与 UI 绑定的方式:

/bindings/TodoApp.js

import { connect } from "react-redux";
import TodoApp from "../components/TodoApp";
import { addTodo } from "../redux/todo";

const mapStateProps = (state) => {
  return {
    todos: state.todo.items
  };
};

const mapActionsToProps = {
  addTodo
};

export default connect(mapStateProps, mapActionsToProps)(TodoApp);

然后我在根组件中导入它:

App.js

import "./styles.css";
import TodoApp from "./bindings/TodoApp";

export default function App() {
  return (
    <div className="App">
      <TodoApp />
    </div>
  );
}

`

最后,我将 Redux 添加到索引文件中:

index.js

import { StrictMode } from "react";
import ReactDOM from "react-dom";
import { Provider } from "react-redux";
import { store } from "./redux/store";
import App from "./App";

const rootElement = document.getElementById("root");
ReactDOM.render(
  <Provider store={store}>
    <StrictMode>
      <App />
    </StrictMode>
  </Provider>,
  rootElement
);

这是我得到的错误:

请帮我处理一下,非常感谢,如果可以的话,请修改此codeandbox链接here中的代码

再次感谢您,祝您有美好的一天

【问题讨论】:

    标签: javascript reactjs web redux react-redux


    【解决方案1】:

    当我看到codeandobx时,看到了错误-

    TypeError
    store is undefined
    

    我认为您可以在 index.js 的第 4 行从“store”中删除“{”括号,因为 store 是 store.js 文件的默认导入,而不是命名导入

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-04
      • 2019-08-02
      • 1970-01-01
      • 2019-07-17
      • 2020-01-15
      • 2022-10-05
      • 2019-06-04
      相关资源
      最近更新 更多