为什么我没有在我的应用程序中获得状态

约努埃尔

我是 redux 的新手,我正在尝试将一个项目添加到购物篮中,但我得到了,TypeError: Cannot read properties of undefined (reading 'getState')。为什么我无法获得状态是我需要做的事情我没有做,请问我做错了什么。我正在使用 useDispatch 挂钩来读取存储并调度操作

嘿是我的代码

import { createSlice } from '@reduxjs/toolkit';

const initialState = {
    items: [],
}

export const basketSlice = createSlice({
    name: "basket",
    initialState,
    reducers: {
        addToBasket: (state, action) => {
            state.items = [...state.items, action.payload]
        },
        removeFromBasket: (state, action) => {},
    }
});

export const { addToBasket, removeFromBasket} = basketSlice.actions;
export const selectItems = (state) => state.basket.items;
export default basketSlice.reducer;



import { configureStore } from "@reduxjs/toolkit";
import basketReducer from "../slices/basketSlice";

export const store = configureStore({
    reducer: {
        basket: basketReducer,
    },
});

import '../styles/globals.css'
import { SessionProvider } from "next-auth/react"
import { Provider } from 'react-redux'
import store from '../app/store'

export default function App({
  Component,
  pageProps: { session, ...pageProps },
}) {
  return (
    <Provider store={store}>
      <SessionProvider session={session}>
        <Component {...pageProps} />
      </SessionProvider>
    </Provider>  
  )
}

import { useDispatch } from 'react-redux'
import {addToBasket} from "../slices/basketSlice"

const Product = ({id, title, description, price, image, category }) => {

  const dispatch = useDispatch();

      const addItemToBasket = () => {
          const product = {
            id,
            title, 
            description, 
            price, 
            image, 
            category 
          }

          dispatch(addToBasket(product))
      }

  return (
    <div className="relative flex flex-col m-10 p-10 bg-white rounded-3xl">
        <button onClick={addItemToBasket} className=" button">Add to basket</button>
    </div>
  )
}

export default Product;
马克 G

看起来状态没有在<Provider />组件内部正确设置。store是一个命名的导出,但它被导入_app.js就好像它是一个default导出(没有花括号)。尝试import { store } from "../some_path_to_store"改用。

这是一个工作示例,可以从评论部分结束我们的讨论:https ://codesandbox.io/s/crazy-fire-o3tr54

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的应用程序状态更新没有存储中的更改事件-Flux

当我更改状态时,为什么我的 React 应用程序没有重新渲染?

为什么我的警报控制器没有在我的 Swift 应用程序中关闭?

为什么我的winforms应用程序中的自动版本没有增加?

为什么图像没有保存在我的 Django 应用程序的数据库中

为什么我的提交表单没有在Meteor应用程序中执行?

为什么图像没有显示在我的Apple Watch应用程序中?

为什么我的Express应用程序中的导航栏上没有其他标签?

为什么在我的单页应用程序中获取错误没有堆栈跟踪?

为什么我当前的应用程序中没有界面?

为什么我的 Android 应用程序中按钮上的文字没有更新?

为什么我的 SKShapeNode 子类在我运行我的应用程序时没有出现?

为什么我的 React 应用程序中的 console.logs 和 UI 没有显示相同的状态变量?

为什么我的记录没有在我的 ASP.NET CORE React Redux 应用程序中更新?

为什么数据没有显示在我的应用程序中,而我可以在 Firebase 中看到它?

为什么我的应用程序没有在我的回收站视图中显示数据库中的用户?

为什么我没有通过 redux 获得实际状态?

我没有错误,但为什么我的应用程序闭上

为什么我的平板电脑上没有我的应用程序

为什么我的邮递员(数据)消息没有到达我的 android 应用程序?

为什么我的Windows应用商店(Metro)应用程序没有出现在共享窗格中?

为什么我的python Slack应用程序永远运行而什么也没有发生?

为什么我的有角度的应用程序没有选择可操作的CSS?

为什么我的 Flask 应用程序返回状态代码为 308 的响应正在测试中?

为什么我可以从MVC应用程序中删除ExtensionlessUrlHandler而没有任何不良影响?

为什么我的图标和启动屏幕没有出现在Phonegap Android应用程序中?

为什么我的某些应用程序在打开时没有显示在启动器中?

为什么这个 action.type 没有在我的 React/Redux 应用程序的 Reducer 中触发?

为什么我在 Xcode 命令行应用程序中没有收到来自 URL 请求的响应