yield all 中的 Redux saga typescript 类型错误
Redux saga typescript type error in yield all
我正在尝试来自 redux-saga 页面的非常简单的示例。
function* saga(): SagaIterator {
yield takeEvery(T.GET_CREDENTIALS, getCredentials);
}
export default function* rootSaga() {
yield all([
saga(),
]);
}
但是我收到打字稿错误:
Argument of type 'IterableIterator<RootEffect | TakeEffect |
ChannelTakeEffect<any> | PutEffect<any> | ChannelPutEf...' is not
assignable to parameter of type '{ [key: string]: Effect; }'.
Index signature is missing in type 'IterableIterator<RootEffect |
TakeEffect | ChannelTakeEffect<any> | PutEffect<any> |
ChannelPutEf...'.
我做错了什么?感谢帮助
由于指向解决方案的链接显然被否决了,这就是解决方案:
export default function* rootSaga() {
yield all([
call(saga()),
]);
}
redux-saga 仓库中的例子大多采用这种形式:
export default function* rootSaga() {
yield all([
fork(saga1),
fork(saga2),
// ...
])
}
例如他们的real-world example。
当我们在它周围使用 all
时,我不确定使用 fork
而不是 call
的意义何在,因为单独的助手应该确保并行执行。
我正在尝试来自 redux-saga 页面的非常简单的示例。
function* saga(): SagaIterator {
yield takeEvery(T.GET_CREDENTIALS, getCredentials);
}
export default function* rootSaga() {
yield all([
saga(),
]);
}
但是我收到打字稿错误:
Argument of type 'IterableIterator<RootEffect | TakeEffect |
ChannelTakeEffect<any> | PutEffect<any> | ChannelPutEf...' is not
assignable to parameter of type '{ [key: string]: Effect; }'.
Index signature is missing in type 'IterableIterator<RootEffect |
TakeEffect | ChannelTakeEffect<any> | PutEffect<any> |
ChannelPutEf...'.
我做错了什么?感谢帮助
由于指向解决方案的链接显然被否决了,这就是解决方案:
export default function* rootSaga() {
yield all([
call(saga()),
]);
}
redux-saga 仓库中的例子大多采用这种形式:
export default function* rootSaga() {
yield all([
fork(saga1),
fork(saga2),
// ...
])
}
例如他们的real-world example。
当我们在它周围使用 all
时,我不确定使用 fork
而不是 call
的意义何在,因为单独的助手应该确保并行执行。