Redux传奇中的getState?

我有一家商店,上面有物品清单。当我的应用程序首次加载时,我需要对项目进行反序列化,就像基于项目创建一些内存中对象一样。这些项目存储在我的redux存储中,并由处理itemsReducer

我正在尝试使用redux-saga处理反序列化,这是副作用。在首页加载时,我调度了一个操作:

dispatch( deserializeItems() );

我的传奇故事设置简单:

function* deserialize( action ) {
    // How to getState here??
    yield put({ type: 'DESERISLIZE_COMPLETE' });
}

function* mySaga() {
    yield* takeEvery( 'DESERIALIZE', deserialize );
}

在我的反序列化传奇中,我要处理创建商品的内存版本的副作用,我需要从商店中读取现有数据。我不确定在这里怎么做,或者这是否是我甚至应该尝试使用redux-saga的模式。

米亚卡卡西2020/03/16 15:17:54

如果在Saga无法处理代码流的情况下,如果我们在回调函数中使用Select效果将无济于事。在这种情况下,只是通过dispatchgetState根的传奇:

store.runSaga(rootSaga, store.dispatch, store.getState)

并将参数传递给子sagas

export default function* root(dispatch, getState) { yield all([ fork(loginFlow, dispatch, getState), ]) }

然后在观看方法

export default function* watchSomething(dispatch, getState) ...