redux 中的 reducers 有些问题

报错信息如下:

The previous state received by the reducer has unexpected type of "Function". Expected argument to be an object with the following keys: "posts", "sidebar"

clipboard.png

相关代码:

store.js

import { createStore, applyMiddleware } from 'redux'
import logger from 'redux-logger'
import thunk from 'redux-thunk'

import reducers from '../reducers/index'

const middleware = process.env.NODE_ENV === 'production' ? [ thunk ] : [ thunk, logger() ]

const store = createStore(reducers, applyMiddleware(...middleware), window.devToolsExtension ? window.devToolsExtension() : f => f)

export default store

reducers/index.js

import { combineReducers } from 'redux'
import posts from './posts'
import sidebar from './sidebar'

const rootReducer = combineReducers({
    posts,
    sidebar
})

export default rootReducer

reducers/posts.js

import {
    RECEIVE_POSTS,
    RECEIVEING_POSTS
} from '../containers/index'

const initialState = {
    posts: [],
    post: {},
    message: 'done'
}

const post = (state = initialState, action) => {
    switch (action.type) {
        case RECEIVE_POSTS:
            return Object.assign({}, state, {
                posts: action.posts
            })
            break
        case RECEIVEING_POSTS:
            return Object.assign({}, state, {
                message: 'loading'
            })
        default:
            return state
    }
}

export default post

我找了挺长时间的,也不知哪里出了问题。求大神解答

阅读 4.4k
1 个回答

我前两天找到了问题。。。原因是createStore的第二个参数是初始化的store。
写代码的时候手快忘记打了,蠢哭了 :(

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题