在我的应用程序中,我想定义一个 saga,它将处理一个LEFT_CHANGED
或多个RIGHT_CHANGED
动作,并继续使用SOURCES_CHANGED
由上述动作的有效负载组成的有效负载的新动作。
export function* watchLeftRightChanged() {
const left = null;
const right = null;
while (true) {
const result = yield take(['LEFT_CHANGED', 'RIGHT_CHANGED'])
switch (result.type) {
case 'LEFT_CHANGED':
yield put({ type: 'SOURCES_CHANGED', result, right })
continue;
case 'RIGHT_CHANGED':
yield put({ type: 'SOURCES_CHANGED', left, result })
continue
}
}
}
问题在于left
,right
变量是null
在SOURCES_CHANGED
发出动作并且不维护它们的值时(我相信由于迭代器的性质)。
有人可以帮忙吗?谢谢