我正在開發一個反應應用程式,我使用 redux 進行狀態管理,我有 2 個函式要呼叫,我希望它們僅在第一個函式執行后運行。
這是我正在做的事情的片段:
if (this.props.page_num < this.props.numPages) {
this.props.fetchCode(params, isFiltered, isSearched).then(() => {
this.props.setPageNumber(this.props.page_num 1);
});
}
在這里,我收到一條錯誤訊息:
CodeTable.jsx?2468:132 Uncaught TypeError: this.props.fetchCode(...).then is not a function
fetchCode 函式:
export function* fetchCode(action) {
try {
const response = yield call(Services.fetchCode, action.params);
const { dtoList } = response.data.pagedList;
const num_pages = response.data.pagedList.numPages;
const total_records = response.data.pagedList.totalRecords;
const page_number = response.data.pagedList.pageNumber;
const postCodeSetsData = dtoList.map(({
}) => ({
}));
yield put(ActionCreator.setCodes(dtoList, num_pages, total_records, postCodeData, page_number, action.isFiltered, action.isSearched));
} catch (error) {
sagaException(error);
}
}
uj5u.com熱心網友回復:
由于您使用的是 redux saga,我認為最合適的做法是撰寫另一個 saga。
export function* fetchCodeSetsAndSetPage(action) {
try {
yield put (ActionCreator.fetchCodes(...));
yield put (ActionCreator.setPageNumber(...));
} catch (error) {
sagaException(error);
}
}
然后在你的組件中呼叫那個。
一些檔案。
uj5u.com熱心網友回復:
使 fetchCodeSets 函式異步。您只能使用異步函式撰寫像那時那樣的承諾。還可以在函式內部使用 return 陳述句。fetchCodeSets 函式的宣告應該是這樣的
const fetchCodeSets = async (params) => {
//codes here
return;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/318789.html
標籤:javascript 反应 异步 还原
