redux React JS中存储没有有效的缩减器

csbfibhn  于 2023-02-23  发布在  React
关注(0)|答案(1)|浏览(134)

我用Redux工具包创建了一个商店,我把每一个东西都设置成与官方文档所描述的相似,但是我仍然面临着以下错误

Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.

这是我的Index.jsx文件,安装程序在其中提供了存储状态

import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App'
import './index.css'
import { store } from './store/store'
import { Provider } from 'react-redux'

ReactDOM.createRoot(document.getElementById('root')).render(
  <React.StrictMode>
    <Provider store={store}>
      <App />
    </Provider>,
  </React.StrictMode>,
)

store.js文件

import { configureStore } from '@reduxjs/toolkit';
import userDataReducer  from '../utils/UserDataSlice'

export const store = configureStore({
    reducer: {
        userData : userDataReducer
    }
});

实用程序中的userDataSlice文件

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


const userDataSlice = createSlice({
  name: 'userData',
  initialState: {
    user_data: []
  },
  reducers: {
    setUserData: (state, action) => {
      state.user_data = action.payload;
    },
    getUserData: (state) => {
      return state.user_data;
    }
  }
});

export const { setUserData, getUserData } = userDataSlice.actions;

export default userDataSlice.reducer;

我无法确定是什么问题,看起来很好,但我得到了我上面提到的错误

yhqotfr8

yhqotfr81#

看起来您从userDataSlice文件导出userDataReducer的方式可能存在问题。
在store.js文件中,您要导入userDataReducer作为默认导出:
import userDataReducer from '../utils/UserDataSlice'
但在userDataSlice文件中,将userDataReducer导出为命名导出:
export default userDataSlice.reducer;
尝试更改userDataSlice文件中的export语句,将userDataReducer导出为命名导出:
export const userDataReducer = userDataSlice.reducer;
然后更新store.js文件中的import语句,将userDataReducer作为命名导出导入:
import { userDataReducer } from '../utils/UserDataSlice'

相关问题