2016-04-06 97 views
1

我仍然在起反應和終極版,現在我跟着這個tutorial並使用這一middleware的調度。我想知道如何在第一次之後再做一次調度(鏈接它)?我現在有這樣的事情。反應,終極版連鎖下一個調度

fetchData() { 
    const { dispatch } = this.props; 
    const action = PageActions.fetchPage({slug: this.props.params.slug}); 
    dispatch(action); 
} 

,如果我能dispatch(action).then(...)dispatch回報始終是不確定的疑惑。那可能嗎?

回答

3

如果您想要在動作創作者中使用異步動作,您需要使用中間件。推薦的中間件是thunk

Stack上有一篇關於它的用法和適當情況的好帖子。 Stack Overflow Async Actions

這將允許您從單個動作調度許多操作。但是,如果您想要將動作「鏈接」在一起,則應該在第一個動作定義的末尾派發第二個動作。

function getBookings() { 
    return (
    RequestHelper.fetchEntities(Routes.bookings.all, {}, queryParams) 
     .then(res => dispatch(getBookingsSuccess(res)); 
) 
} 

... 
function getBookingsSuccess(data) { 
    dispatch(showSuccess()); 
} 
+0

如果我使用'終極版 - thunk',做我需要刪除我現有的promiseMiddleware?如果我不這樣做,我應該如何將下一個鏈接到我的動作創作者?在我的平常行爲中添加'.then'不起作用,例如。 'return {type:FETCH,promise:request.get(...)[。then(...)]}'。兩者都會執行我在服務器上可以看到的請求,但是我的應用程序失敗了。 – index

+1

所以我使用和learened thunk來完成這一點。謝謝! – index