我正在尝试这样做当我执行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)被击中时没有任何反应。什么都没发送。不确定我是否需要做其他事情,因为我只是在一个反应组件中这样做,所以redux / reactjs可能会在幕后为我做点什么。
答案 0 :(得分:0)
除了返回另一个匿名函数之外,setPreLoader
函数本身并没有做任何事情。因此,只调用setPreLoader(true)
不会做任何事情,因为不会调用匿名函数。
您必须使用适当的函数调用setPreLoader(true)
的结果:
setPreLoader(true)(someFunction)