我有一个ID列表,应该以{{1}}的形式放在请求url中,我需要从所有这些端点返回的数据以供进一步使用。我的sagas像这样:
https://somedomain.com/${fetchData.id}.json
这是我的动作
function* fetchSingleElement(fetchData: jobData) {
const data = yield fetch(
`https://somedomain.com/${fetchData.id}.json`
).then(res => res.json());
yield put({ type: RECEIVED_ELEMENT, data, reqId: fetchData.id });
}
function* elementWatcher() {
yield takeEvery(GET_ELEMENT, fetchSingleElement);
}
,它通过使用来自redux的const getElement = (id: number) => {
return {
type: GET_ELEMENT,
id: id,
};
};
函数连接到组件并在connect
中调用。该组件在另一个组件内循环。问题是:每次迭代我都在组件内部接收到相同的数据,因为在useEffect()
中,我仅接收到当前状态,即来自当前处理的端点的数据。所以我试图通过编写我的减速器来解决这个问题:
useSelector
但是apiData参数对我来说并不好,并且在使用打字稿时造成了很多麻烦。
您能告诉我如何使用redux,redux saga和hook从多个端点请求然后保存状态数据吗?