使用redux,sagas和hooks请求和保存多个端点的正确方法是什么?

时间:2019-11-14 20:27:38

标签: javascript reactjs redux react-hooks redux-saga

我有一个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从多个端点请求然后保存状态数据吗?

0 个答案:

没有答案