0
我每次用戶輸入用戶名字段時都會調用以下去抖函數。它按預期工作。使用redux-thunk調度去抖函數中的操作
export const uniqueUsernameCheck = _.debounce(({ username }) => {
axios.post(`${API_URL}/signup/usernamecheck`, { username })
.then((res) => {
console.log('Is unique?', res.data.status);
})
.catch((error) => {
console.log(error);
});
}, 500);
但是使用redux-thunk我試圖修改函數,以便我可以在我的函數內調度動作。這是我有:
export const uniqueUsernameCheck = _.debounce(({ username }) => {
console.log('I can see this');
return (dispatch) => {
console.log('But not this');
dispatch({ type: USERNAME_CHECK });
axios.post(`${API_URL}/signup/usernamecheck`, { username })
.then((res) => {
dispatch(authError(res.data.error));
})
.catch((error) => {
console.log(error);
});
};
}, 500);
問題就出在上面的代碼不再觸發了我的POST請求,如初始功能沒有和從來都沒有被分派。我知道我做錯了什麼,但無法弄清楚什麼。
編輯:
這是我如何設置我的店
const store = createStore(reducers, {}, applyMiddleware(ReduxThunk));
兩個方面的考慮:你必須直接發送'發送'的功能;您只能創建一次去抖動功能。 –