我有一個更新Redux中的某些搜索條件的操作。我想立即從基於本地標準的API獲取一些數據。問題是,雖然搜索條件動作分派是同步的,但在搜索結果分派開始之前它不會完成。如何在Redux中完成另一個同步操作時分派操作
在這個例子中,該標準將不會在API調用之前更新:
this.props.dispatch(updateLocalCriteria(someData));
this.props.dispatch(fetchApiResults(this.props.criteria))
我失去了一些東西明顯?我可以想到一些簡單的方法來處理這個問題,但最好的方法是什麼?我應該在搜索條件更新時設置一個標誌,並且如果標誌爲真,則在componentDidUpdate()
中獲取結果?或者我應該使updateLocalCriteria()
異步,以便我可以在承諾鏈中鏈接fetchApiResults()
?
編輯
我想我已經找到了我的答案。我可以在fetchApiResults()
之內獲得當前狀態。因此,我可以在進行api調用之前獲取當前的搜索條件。
function fetchApiResults() {
return (dispatch, getState) => {
const state = getState();
// fetch data and dispatch...
'updateLocalCriteria()'只更新條件的一個屬性,但我想將所有條件發送到'fetchApiResults()'。我想在調用'fetchApiResults()'之前,我仍然需要在'updateCriteriaAndFetch()'中獲取當前狀態。 –
在這種情況下是的 –