Maison > Questions et réponses > le corps du texte
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?
P粉7041966972023-09-17 14:40:47
Vous avez besoin dispatch
de cette action !
Votre fetchCategory
函数是一个 "thunk action creator"。调用 fetchCategory()
会创建一个 thunk 动作,但不会对其执行任何操作。你需要调用 dispatch(fetchCategory())
pour effectuer cette action.
const buttonHandler = async () => { await request("/category/create", "POST", { newCategory: { label: form.categoryLabel, limit: form.categoryLimit, }, }); setForm(initialState); --> dispatch(fetchCategory()); <-- };