我有一家商店,上面有物品清单。当我的应用程序首次加载时,我需要对项目进行反序列化,就像基于项目创建一些内存中对象一样。这些项目存储在我的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的模式。
如果在Saga无法处理代码流的情况下,如果我们在回调函数中使用Select效果将无济于事。在这种情况下,只是通过
dispatch
和getState
根的传奇:并将参数传递给子sagas
export default function* root(dispatch, getState) { yield all([ fork(loginFlow, dispatch, getState), ]) }
然后在观看方法
export default function* watchSomething(dispatch, getState) ...