2017-11-25 20 views
0

就Redux + React(和ES6)而言,完全的初學者對我很感興趣 - 我已經建立了所有的管道,我所有的狀態都在更新,但我仍然有點困惑。有教程進行操作,請在終極版行動之一,開始了: 爲什麼Redux將調度傳遞給動作的返回函數?

export function getApiData(){ 
 
     return(dispatch) => {return(dispatch) => { -some other actions here- } 
 
}

此功能從API獲取數據,所以它還會調度getApiDataRequested和GetApiData成功的行動,但上面並對我來說沒有意義。現在我知道調度表示意圖更新Redux狀態,但爲什麼調度作爲參數傳遞給返回函數?

乾杯!

+0

那ES6箭頭的功能,它不返回調度,其實際發送派遣一個ananymous函數,其中該行動將發生 – Jeffin

回答

2

這是因爲它是使用Redux-thunk的異步操作的示例。 如果你看看這個中間件,它會檢查你的動作是否是一個函數,如果是,它會將調度傳遞給你的返回函數。你不能只用REDX調用一個動作,你總是需要調度它,所以你應該使用調度對象來調用你的動作。

function createThunkMiddleware(extraArgument) { 
    return ({ dispatch, getState }) => next => action => { 
    if (typeof action === 'function') { 
     return action(dispatch, getState, extraArgument); 
    } 

    return next(action); 
    }; 
} 

https://github.com/gaearon/redux-thunk

+0

啊,那是非常合情合理的;因爲這個特定的getApiData函數從字面上調度其中的其他函數,所以它需要該調度參數來訪問調度函數。我不相信我沒有建立這種聯繫。 –

相關問題