2017-07-15 41 views
0

我有一個反應原生應用程序,我需要在應用程序中簡單地保留所有原始動作。我的想法是,我得到一個簡單的事件存儲,我稍後可以彙總報告和統計信息。 一個要求是每個動作都被持續一樣,並且它們按照被調用的順序持續動作通道中傳入動作的順序不同

我就用簡單的情況下,使用actionChannel效果:

import { actionChannel, call, take } from 'redux-saga/effects' 

export function* track() { 
    const catchAll = yield actionChannel('*'); 
    while (true) { 
    const action = yield take(catchAll); 
    yield call(persist, action); 
    } 
} 

這仍然存在的所有操作,而不是在爲了他們那裏派出。但是,使用Redux DevTools,我看到正確的訂單被報告。

有沒有什麼明顯的我在這裏錯過了? 我如何保證獲得正確的訂單? actionChannel()即使這樣工作嗎?

回答

0

它看起來很簡單:track傳奇是最後一個獲得註冊。在移動sagaMiddleware.run(track);成爲第一個之後,事情按預期工作。

但是,除了第一個動作之外,任何動作的順序無論如何都應該是正確的順序。但我專注於第一個〜5個動作而不是正確的順序。