Sunday, May 12, 2024
 Popular · Latest · Hot · Upcoming
181
rated 0 times [  187] [ 6]  / answers: 1 / hits: 66065  / 8 Years ago, sat, april 2, 2016, 12:00:00

I tried simple react,redux,ajax working example and followed Reddit API tutorial, but I cannot create store and get error:



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



Type of rootReducer is object, but why? Should I change createStore function to 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,

More From » reactjs

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

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


The initial state is then created automatically from the initial states returned by the individual reducer functions. These individual states can be accessed as state.products and state.specialPosts


[#62721] Thursday, March 31, 2016, 8 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
adrianobeds

Total Points: 558
Total Questions: 118
Total Answers: 116

Location: Luxembourg
Member since Tue, Jan 25, 2022
2 Years ago
;