Redux工具包中的初始状态问题

xxls0lw8  于 2023-10-19  发布在  其他
关注(0)|答案(2)|浏览(124)

当我在redux开发工具中检查状态时,我看到reducers: undefined。我不知道这个代码有什么问题。
postsSlice.js

import { createSlice } from '@reduxjs/toolkit'

const postsSlice = createSlice({
  initialState: [{ id: '1', title: 'test', desc: 'test2' }],
  name: 'posts',
  reducers: {},
})

export default postsSlice.reducer

store.js

import { configureStore } from '@reduxjs/toolkit'
import postsReducer from '../features/postsSlice'

export default configureStore({
  reducer: () => ({
    posts: postsReducer,
  }),
})

Redux开发工具

reducer(pin): undefined

更改存储库,节点模块

x9ybnkn6

x9ybnkn61#

存储创建的reducer属性接受一个键值为reducer函数的对象,或者直接接受一个reducer函数。它 * 不 * 接受一个返回此对象/reducer函数的函数。

import { configureStore } from '@reduxjs/toolkit';
import postsReducer from '../features/postsSlice';

export default configureStore({
  reducer: {
    posts: postsReducer,
  },
});

import { configureStore } from '@reduxjs/toolkit';
import postsReducer from '../features/postsSlice';

export default configureStore({
  reducer: postsReducer,
});
vxf3dgd4

vxf3dgd42#

您如何配置Redux商店可能存在问题。在你的store.js中,你使用了一个reducer字段的函数,但它应该是一个对象。
以下是如何修复store.js代码:

import { configureStore } from '@reduxjs/toolkit';
import postsReducer from '../features/postsSlice';

export default configureStore({
  reducer: {
    posts: postsReducer,
  },
});

请注意,我已经将reducer字段从函数更改为对象,并将postsReducer分配给posts键。这应该可以解决您在Redux DevTools中遇到的显示reducer: undefined的问题。
通过此更改,您的Redux商店配置应该正确工作,并且您的还原器应该正确连接到商店。

相关问题