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?
Anda perlukan
dispatch
tindakan ini!Anda
fetchCategory
函数是一个 "thunk action creator"。调用fetchCategory()
会创建一个 thunk 动作,但不会对其执行任何操作。你需要调用dispatch(fetchCategory())
untuk melakukan tindakan ini.