2016-01-27 31 views
3

我有這樣的動作:終極版調度動作和減速機採用新的狀態

export function login(){ 
    my_login(function(response){ 
    if(response.status == "ok"){ 
     loginSuccess(response) 
     } 
     }) 
     } 

export function loginSuccess(response){ 
    return dispatch => { 
    dispatch({ response, type: types.LOGIN }); 
    console.log("dispatched"); 
    console.log(getState()); ---> I want the updated state 
    router.transitionTo("/some_url");----> after this I want to route it to somewhere 
    }; 
} 

當我login行動再次調用它調用my_login然後我派我的loginSuccess行動。

我有這樣一個減速器:

const initialState = [ 
    { 
    fname: null, 
    lname: false, 
    } 
] 

export default function login(state = initialState, action) { 
    switch (action.type) { 
    case LOGIN: 
    console.log("actions dude") 
     console.log(action) 
     return 
     [{ 
      fname: action.fname, 
      lname: actin.lname, 
     }] 
    default: 
     return state 
    } 
} 

這裏我的狀態沒有改變,我不是在行動得到上述getState()值。

我不認爲我的reducer被調用和狀態更新。

任何人都可以告訴我什麼是錯的嗎?

回答

2

我認爲你缺少dispatch(loginSuccess(response))

+0

它會給我錯誤調度沒有定義...所以我把它叫做這樣.. – aryan

2

謹防裸return語句。自動分號插入的已知陷阱之一是return變爲return;

所以不是:

return 
[{ 
    fname: action.fname, 
    lname: action.lname, 
}] 

而是執行此操作:

return [{ 
    fname: action.fname, 
    lname: action.lname, 
}];