C'est une fonction d'action utilisée avec redax (elle fonctionne parfaitement depuis que je l'utilise)
export const fetchCategory = () => { return async (dispatch) => { try { dispatch(settingsSlice.actions.settingsFetching()); const response = await request("/category/getAll", "POST", {}); dispatch(settingsSlice.actions.settingsFetchingSuccess(response)); } catch (e) { dispatch(settingsSlice.actions.settingsFetchingError(e)); } }; };
Lorsque le bouton est enfoncé, je dois faire une demande au serveur et mettre à jour le statut
C'est la fonction qui s'exécute lorsque vous cliquez sur le bouton :
const buttonHandler = async () => { await request("/category/create", "POST", { newCategory: { label: form.categoryLabel, limit: form.categoryLimit, }, }); setForm(initialState); fetchCategory(); };
J'ai vérifié, le formulaire a été envoyé au backend et tout va bien sauf "fetchCategory"
J'ai essayé d'utiliser useEffect pour résoudre ce problème
useEffect(() => { fetchCategory(); }, [Button , buttonHandler]);
J'ai essayé d'installer différentes dépendances mais sans résultat. Comment résoudre ce problème?
Vous avez besoin
dispatch
de cette action !Votre
fetchCategory
函数是一个 "thunk action creator"。调用fetchCategory()
会创建一个 thunk 动作,但不会对其执行任何操作。你需要调用dispatch(fetchCategory())
pour effectuer cette action.