recherche

Maison  >  Questions et réponses  >  le corps du texte

La fonction d'expédition n'a aucun effet après avoir appuyé sur le bouton

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粉410239819P粉410239819443 Il y a quelques jours453

répondre à tous(1)je répondrai

  • P粉704196697

    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()); <--
    };

    répondre
    0
  • Annulerrépondre