gpt4 book ai didi

javascript - React+Redux - Uncaught Error : Expected the reducer to be a function

转载 作者:可可西里 更新时间:2023-11-01 01:32:54 28 4
gpt4 key购买 nike

我尝试了简单的 react、redux、ajax 工作示例并遵循了 Reddit API tutorial ,但我无法创建商店并收到错误消息:

Uncaught Error: Expected the reducer to be a function.

index.jsx

...

import { createStore, applyMiddleware } from 'redux'
var thunkMiddleware = require('redux-thunk');
var createLogger = require('redux-logger');
var rootReducer = require('./reducers.js');

const loggerMiddleware = createLogger();

function configureStore(initialState) {
return createStore(
rootReducer,
initialState,
applyMiddleware(
thunkMiddleware,
loggerMiddleware
)
)
}

const store = configureStore();

...

rootReducer.js

import { combineReducers } from 'redux';

function products(state = {
isFetching: false,
didInvalidate: false,
items: []
}, action) {
switch (action.type) {
case 'REQUEST_PRODUCTS':
return Object.assign({}, state, {
isFetching: true,
didInvalidate: false
})
case 'RECEIVE_PRODUCTS':
return Object.assign({}, state, {
isFetching: false,
didInvalidate: false,
items: action.posts,
lastUpdated: action.receivedAt
})
default:
return state
}
}

function specialPosts(state = { }, action) {
switch (action.type) {
case RECEIVE_SPECPOSTS:
case REQUEST_SPECPOSTS:
return Object.assign({}, state, {
req: true
})
default:
return state
}
}

const rootReducer = combineReducers({
products,
specialPosts
});

export default rootReducer;

enter image description here

rootReducer 的类型是对象,但为什么呢?我应该将 createStore 函数更改为 rootReducer.default 吗?

return createStore(
rootReducer.default,
initialState,
applyMiddleware(
thunkMiddleware,
loggerMiddleware
)
)

package.json

"redux-logger": "^2.6.1",
"react-redux": "^4.4.1",
"react-redux-provide": "^5.2.3",
"redux": "^3.3.1",
"redux-thunk": "^2.0.1",

最佳答案

const rootReducer = combineReducers({
products,
specialPosts
});

const store = createStore( rootReducer, applyMiddleware( thunkMiddleware ));

然后根据各个 reducer 函数返回的初始状态自动创建初始状态。这些单独的状态可以作为 state.productsstate.specialPosts

访问

关于javascript - React+Redux - Uncaught Error : Expected the reducer to be a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36377911/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com