-1

我正在努力做到这一点,所以当我执行 ajax 请求时,我的预加载会在请求完成(成功与否)时显示出来,它会消失。

我正在使用 Axios,他们有请求和响应的拦截器。我现在正在尝试请求。

import axios from "axios";
import {setPreLoader}  from './PreLoaderActions.js';

export const axiosInstant = axios.create({
    baseURL: 'http://localhost:54690/api',
    timeout: 2000,
});

export const config = axiosInstant.interceptors.request.use( config => {
    // Do something before request is sent
    console.log('afaf');
    setPreLoader(true);
    return config;
  }, function (error) {
    // Do something with request error
   // this.setPreLoader(false);
    return Promise.reject(error);
  });


import {actions}  from './Actions.js';

export function setPreLoader(show) {
     return function (dispatch) {
        dispatch({ type: actions.SHOW_PRE_LOADER, payload: { showPreLoader: show }  });
    };
}

当我的 setPreloader(true) 被击中时,什么也没有发生。什么都没有发送。不确定我是否需要做其他事情,因为我只在 react 组件中做过,所以 redux/reactjs 可能在幕后为我做一些事情。

4

1 回答 1

0

除了返回另一个匿名函数之外,该setPreLoader函数本身不做任何事情。因此,仅仅调用setPreLoader(true)什么都不做,因为匿名函数没有被调用。

您必须setPreLoader(true)使用适当的函数调用结果:

setPreLoader(true)(someFunction)
于 2016-08-19T21:26:23.883 回答