I am just learning redux/reactjs.And I am trying to do serverside rendering with redux But unfortunately I got this error.Yes there are many answer out there but not working for me.
headerReducer.js
import * as type from '../Actions/actionTypes';
const initialState = {
menuToggle:false,
singnInToggle:false,
removeUploadMenu:true,
uploadPopUp:false
};
export default function toogleReducer(state=initialState,action) {
switch (action.type){
case type.NAVBAR_TOGGLE:
return(
Object.assign({},state,{menuToggle:action.payload})
);
case type.SIGNINPOP_TOGGLE:
return(
Object.assign({},state,{singnInToggle:action.payload})
);
case type.REMOVEUPLOADMENU:
return(
Object.assign({},state,{removeUploadMenu:action.payload})
);
case type.TOGGLEUPLOADPOPUP:
return(
Object.assign({},state,{uploadPopUp:action.payload})
);
case type.TOGGLEUPLOADPOPUPOFF:
return(
Object.assign({},state,{uploadPopUp:action.payload})
)
default:
return state
}
}
headerActions.js
import * as types from './actionTypes';
export function toggleStatus(bool) {
return{
type:types.NAVBAR_TOGGLE,
payload:bool
}
}
export function toggleSignPop(bool) {
return{
type:types.SIGNINPOP_TOGGLE,
payload:bool
}
}
export function removeUploadMenu(bool) {
return{
type:types.REMOVEUPLOADMENU,
payload:bool
}
}
export function toggleUploadPopun(bool) {
return{
type:types.TOGGLEUPLOADPOPUP,
payload:bool
}
}
reducers/index.js
import {combineReducers} from 'redux';
import toggleReducer from './headerReducer';
import loginStatusReducer from './AuthReducer';
import photoUploadReducer from './photoUploadingReducer';
import notificationReducer from './NotificationReducer';
import supportForUploadReducer from './supportForUploadReducer';
export default combineReducers({
toggle:toggleReducer,
logInStatus:loginStatusReducer,
photoUpload:photoUploadReducer,
notification:notificationReducer,
loadedAjax:supportForUploadReducer
});
I suspect your components aren't correctly connected to Redux store. Look at this Dan Abramov's example. You should especially have dispatch
used when connecting your actions to Redux store. Example:
const mapDispatchToProps = (dispatch) => {
return {
onTodoClick: (id) => {
dispatch(toggleTodo(id));
},
};
};