2016-08-19 3 views
-1

私はAJAXリクエストを行うときにリクエストが完了したとき(成功かどうか)に、プレロードが表示されるようにしています。もう一度ディスパッチする必要がありますか、またはコードが実行されていないのはなぜですか?

私はAxiosを使用しており、要求と応答のためのインターセプタを持っています。私は今、リクエストをしようとしています。

(真)私のsetPreloaderは何も起こらないヒットを取得します
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 } }); 
    }; 
} 

。何も派遣されません。私がこれまでに反応成分で行ったように、何か他のことをする必要があるかどうかはわからないので、redux/reactjsが私のために何かをやっているかもしれない。

答えて

0

setPreLoader関数は、別の匿名関数を返す以外に何もしません。したがって、匿名関数が呼び出されないので、setPreLoader(true)を呼び出すだけで何も行われません。

あなたは適切な機能をsetPreLoader(true)の結果を呼び出す必要があり:

setPreLoader(true)(someFunction) 
+0

は、いや、私はちょうどsomeFunctionがどうなるか分かりません。私が他の場所でこれを呼び出すとき、私はそれをすべて私のために行う "redux" bindActionCreatorsから持っています。しかし、私が持っているこのコードは、コンポーネントや何かになることはないので、私はそのredux "bindActionCreators" – chobo2

関連する問題