2016-08-19 2 views
-1

아약스 요청을 할 때 내 사전로드가 나타나면 요청이 완료되면 (성공 여부) 사라집니다.파견을 다시해야합니까, 아니면 코드가 실행되지 않는 이유는 무엇입니까?

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/redujs가 나에게 무언가를 할 수 있습니다.

답변

0

setPreLoader 함수는 다른 익명 함수를 반환하는 것 외에는 아무 것도하지 않습니다. 따라서 setPreLoader(true)을 호출하면 익명의 함수가 호출되지 않기 때문에 아무런 작업도 수행하지 않습니다.

당신은 적절한 기능을 setPreLoader(true)의 결과를 호출 할 필요가 :

setPreLoader(true)(someFunction) 
+0

가 네 난 그냥 된 SomeFuncion이 어떻게 될지 모른다. 내가 이것을 redux "bindActionCreators"에서 가져온 다른 곳에서 호출하면 나에게 모든 것을 수행합니다. 그러나 내가 가지고있는이 코드는 컴포넌트 나 다른 것에 있지 않을 것입니다. 그래서 나는 그 redux "bindActionCreators" – chobo2

관련 문제