У меня есть следующая функция debounced, которая вызывается каждый раз, когда пользователь вводит имя пользователя. Он работает так, как ожидалось.Отправка действия в функции debounced с использованием 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);
Проблема не заключается в том, что приведенный выше код больше не выстреливает мой запрос поста как начальная функция сделала и ничего не получает посланное. Я знаю, что я делаю что-то неправильно, но не могу понять, что.
EDIT:
Это, как я создал свой магазин
const store = createStore(reducers, {}, applyMiddleware(ReduxThunk));
Два соображения: вы должен отправить функцию, которая получает «отправку» напрямую; вы должны создать функцию debounce только один раз. –