2 回答

TA贡献1804条经验 获得超7个赞
我假设您已经安装了 redux-thunk。
首先,您需要修改helper.js 中的HTTPRequest函数。添加两个参数给它调度,如下所示
const HTTPRequest = (path, body, method = 'POST',
authorizedToken = null,dispatch,actionCreator) => {
然后在您的 axios 调用成功后,您可以添加以下行
dispatch(actionCreator.success(response))
同样对于失败,您可以添加如下
dispatch(actionCreator.failure(error.message))
在 action.js 文件中创建一个动作作为
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)
}
}
创建 action creator 并将其作为参数与 dispatch 一起传递给 helper.js 文件中可用的 HTTPREQUEST 实用程序。现在基于成功和失败的响应,它正在启动操作。使用该操作,您可以将响应存储在 redux 存储中,然后您可以在您的组件中使用它。
更新了下面的答案以解决确切的问题。否则我会推荐上述解决方案。试试这个
import store from './redux/store.js';
Const func=()=> {}
store.subscribe(func)

TA贡献1830条经验 获得超3个赞
通过@Avin Kavish 在评论中分享的链接,这是我的解决方案。
在helper.js我已经导入了商店,现在辅助函数看起来像这样
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 是一个对象,它几乎没有方法,包括调度这里提到的动作。
添加回答
举报