2016-12-10 1 views
2

私はredux/reactjs.Andだけを学んでいますreduxでserversideレンダリングをしようとしています。残念ながら私はこのエラーを持っています。私のために働いていない。 enter image description hereUncaught TypeError:未定義のプロパティ 'type'を読み取ることができませんReact/Redux

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 
    } 
} 

リデューサー/ 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 
}); 

答えて

3

私はあなたのコンポーネントが正しくReduxのストアに接続されていない疑いがあります。 this Dan Abramov's exampleを見てください。アクションをReduxストアに接続するときは、特にdispatchを使用する必要があります。例:

const mapDispatchToProps = (dispatch) => { 
    return { 
    onTodoClick: (id) => { 
     dispatch(toggleTodo(id)); 
    }, 
    }; 
}; 
関連する問題