Fungsi penghantaran tidak mempunyai kesan selepas menekan butang
P粉410239819
P粉410239819 2023-09-16 18:45:51
0
1
446

Ini ialah fungsi tindakan yang digunakan dengan redax (ia berfungsi dengan sempurna sejak saya menggunakannya)

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

Apabila butang ditekan, saya perlu membuat permintaan kepada pelayan dan mengemas kini status

Ini ialah fungsi yang dilaksanakan apabila anda mengklik butang:

const buttonHandler = async () => {
    await request("/category/create", "POST", {
      newCategory: {
        label: form.categoryLabel,
        limit: form.categoryLimit,
      },
    });
    setForm(initialState);
    fetchCategory();
  };

Saya telah menyemak, borang telah dihantar ke bahagian belakang dan semuanya baik kecuali "fetchCategory"

Saya telah mencuba menggunakan useEffect untuk menyelesaikan masalah ini

useEffect(() => {
    fetchCategory();
  }, [Button , buttonHandler]);

Saya cuba memasang kebergantungan yang berbeza tetapi tiada hasil. bagaimana untuk menyelesaikan masalah ini?

P粉410239819
P粉410239819

membalas semua(1)
P粉704196697

Anda perlukan dispatch tindakan ini!

Anda fetchCategory 函数是一个 "thunk action creator"。调用 fetchCategory() 会创建一个 thunk 动作,但不会对其执行任何操作。你需要调用 dispatch(fetchCategory()) untuk melakukan tindakan ini.

const buttonHandler = async () => {
    await request("/category/create", "POST", {
      newCategory: {
        label: form.categoryLabel,
        limit: form.categoryLimit,
      },
    });
    setForm(initialState);
--> dispatch(fetchCategory()); <--
};
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan