2016-04-13 18 views
3

react/reduxアプリに問題があります。特定のアクションbuildModalForm()は還元剤にactions/index/から渡されていません。私はかなり反応して、問題が何であるか分かりません。アクション/インデックスにアクションがレデューサーに渡されない - Redux

class BuildPage extends Component { 

    componentWillMount(){ 
    this.props.fetchAPIJobs(); 
    this.props.buildModalForm(); 
    } 

//.... 


const mapStateToProps = (state) => { 

    return { 
     rowData : state.buildJobs.rowData, 
     columns : state.buildJobs.columns, 
     reactView: state.reactView 
     } 
} 


const mapDispatchToProps = (dispatch) => { 
    return { 
     onFormClick:() => { 
      dispatch(showModal()) 
     }, 
     onModalClose:() => { 
      dispatch(hideModal()) 
     }, 
     buildModalForm :() => { 
      dispatch(buildModalForm()) 
     }, 
     fetchAPIJobs :() => { 
      fetchAPIJobs(fetchAPIJobs()) 
     } 
    } 
} 

export default connect(mapStateToProps, mapDispatchToProps)(BuildPage) 

:定数/ actionTypesで

import * as actionTypes from '../constants/actionTypes' 

export function buildModalForm(){ 
    console.log("in action creator buildModalForm"); 
    return { type: actionTypes.BUILD_MODAL_FORM } 
} 

:容器/ buidpageで

減速/ reactViewで

export const BUILD_MODAL_FORM = 'BUILD_MODAL_FORM'

:(接続ルートレデューサーに)

import { 
    HIDE_MODAL, 
    SHOW_MODAL, 
    BUILD_MODAL_FORM 
} from '../constants/actionTypes.js' 

import { 
    BUILD_INITIAL_STATE, 
    ROOT_INITIAL_STATE 
} from '../constants/initialStates' 


export default function reactView(state = {}, action) { 
    console.log("in react view reducer :", action.type); 
    switch (action.type){ 
    case SHOW_MODAL : 
     return Object.assign({}, state, {modalDisplay: true}) 
    case HIDE_MODAL : 
     return Object.assign({}, state, {modalDisplay: false}) 
    case BUILD_MODAL_FORM : 
     return Object.assign({}, state, BUILD_INITIAL_STATE) 
    default : 
     return state 
    } 
} 

アクション/インデックスにconsole.logはそのその作用の内側にログインしている、と減速内部ログは、他のアクションの種類を読んでいるが、BUILD_MODAL_FORMがログに記録されて渡していません。助けが私の感謝します。

+0

他のレデューサーはありますか?あなたは彼らが州を突然変異させないと確信していますか? – VonD

+0

@VonDはい私はいくつかの他のレデューサーを持っていますが、すべてここで示したのと同様のObject.assignを使用します。私はObject.assignが状態を突然変えないという印象を受けましたが、おそらくそれは正しくありませんか? –

+0

これは 'Object.assign({}、state、newData)'に依存しています。しかし、 'Object.assign(state、newData)'はそうです。 – VonD

答えて

0

- 私はタイプミスをしてミドルウェアから何も返さなかった。ケースが閉まった、ドッ。

関連する問題