2 回答

TA貢獻1804條經(jīng)驗 獲得超7個贊
我假設(shè)您已經(jīng)安裝了 redux-thunk。
首先,您需要修改helper.js 中的HTTPRequest函數(shù)。添加兩個參數(shù)給它調(diào)度,如下所示
const HTTPRequest = (path, body, method = 'POST',
authorizedToken = null,dispatch,actionCreator) => {
然后在您的 axios 調(diào)用成功后,您可以添加以下行
dispatch(actionCreator.success(response))
同樣對于失敗,您可以添加如下
dispatch(actionCreator.failure(error.message))
在 action.js 文件中創(chuàng)建一個動作作為
export const helperAction=(path, body, method = 'POST',
authorizedToken = null) =>{
var actionCreator = {}
actionCreator.success = helloWorld
actionCreator.failure = failureFunction //your failure action
return dispatch => {
HTTPRequest(path, body, method = 'POST',
authorizedToken = null,dispatch, actionCreator)
}
}
創(chuàng)建 action creator 并將其作為參數(shù)與 dispatch 一起傳遞給 helper.js 文件中可用的 HTTPREQUEST 實用程序。現(xiàn)在基于成功和失敗的響應(yīng),它正在啟動操作。使用該操作,您可以將響應(yīng)存儲在 redux 存儲中,然后您可以在您的組件中使用它。
更新了下面的答案以解決確切的問題。否則我會推薦上述解決方案。試試這個
import store from './redux/store.js';
Const func=()=> {}
store.subscribe(func)

TA貢獻1830條經(jīng)驗 獲得超3個贊
通過@Avin Kavish 在評論中分享的鏈接,這是我的解決方案。
在helper.js我已經(jīng)導(dǎo)入了商店,現(xiàn)在輔助函數(shù)看起來像這樣
import {store} from "../redux/ConfigureStore"; //I have imported my store
const HTTPRequest = (path, body, method = 'POST', authorizedToken = false) => {
let getInitialStates = store.dispatch(helloWorld()); //This to dispatch an action
<ALL OTHER CODES AS ABOVE HERE>
}
這是因為 store 是一個對象,它幾乎沒有方法,包括調(diào)度這里提到的動作。
添加回答
舉報