Rumah > Soal Jawab > teks badan
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粉7041966972023-09-17 14:40:47
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()); <-- };