我正在嘗試使用Redux Observable來調用一個操作來獲取一些數據,等待它的返回,然後獲取更多依賴它的數據。如何填充商店並使用Redux Observable按順序返回等待?
我有一個史詩從填充FetchTodos
填充商店。這聽取FETCH_TODOS
行動,然後調用我的todos API和填充{todos: [] } =
我的店裏還有一個評論部分todoComments
。但是,我只想填充todoComments
,一旦FETCH_TODOS
已返回並填充該商店。
在必要的代碼,這可能是這樣的:
let todos = await api.get('/todos');
await dispatch("FETCH_TODO_COMPLETE", todos)
let firstId = getState().todos[0].id
let comments = await api.get(`/todos/${firstId}/comments')
await dispatch("FETCH_COMMENTS_COMPLETE", { todo_id: firstId, comments})
我看到這個最接近的是在終極版可觀察回購this issue,但我不明白如何有效地做到這一點。這對我來說是非常普遍的情況。
我想重複使用儘可能多的代碼。在這個例子中,我可以從多個組件派遣FETCH_TODOS
。
如何使用Redux-Observable完成此操作?根據我們的意見談話
在你的榜樣,你只取第一個待辦事項的評論列表中的'讓firstId =的getState()待辦事項[0] .id'是你想要做什麼,或你想要通過ID獲取特定待辦事項的評論,或者想要獲得所有待辦事項的評論? – jayphelps
這更多的是爲了表明評論將不得不等待待辦事項。提取和訪問中間狀態的順序是關鍵部分。 – Doug
它改變你如何去做。 – jayphelps